Las comparaciones son odiosas

No, no vamos a comparar a Velneo con otras herramientas. En este artículo vamos a comentar los operadores de comparación que tiene Velneo:

  • Igual a: =
  • Distinto de: !
  • Mayor que: >
  • Menor que: <

Lo primero que echamos en falta son los operadores Menor igual y Mayor igual. Efectivamente estos dos operadores no son incluidos en Velneo, pero ¿eso es un problema? Vamos a ver que no.

Lógica inversa

Supongamos que tenemos un if donde queremos comparar si una variable es mayor o igual que cero. La lógica nos dice que si queremos que sea mayor o igual que cero es lo mismo que “no sea menor que cero”. Eso es lo que se conoce como lógica inversa. Podemos ver otro ejemplo en el foro de Velneo.

Ejemplo

No lo veo claro

Cuando anidamos varios comparadores puede llegar a liar tanta lógica inversa en la misma operación. Una solución es crearnos nuestras propias funciones para representar los operadores de Menor igual y Mayor igual.

Menor o igual Mayor o igual

De esta manera el ejemplo anterior quedaría así:

Ejemplo

Precedencia de operadores

Cuando utilizamos los operadores lógicos AND (&) y OR (|), hay que tener en cuenta lo que se conoce como precedencia de operadores. En Velneo, los operadores se evalúan de izquierda a derecha y hay que hacer uso en muchas ocasiones de los paréntesis.

Por ejemplo, si queremos construir una expresión que evalúe si a es menor que 2 y b es menor que 6, haríamos:

‘a’ < 2 & ‘b’ <6

La precedencia de operadores hace que se evalúe cada operador de izquierda a derecha a medida que se encuentran, esto es, primero el menor, después el Y lógico y por último otro menor. O sea, no está bien construida la expresión.
Para que funcione tendríamos que utilizar los paréntesis de tal manera que lo que está entre paréntesis se evalúe como un todo:

(‘a’ < 2) & (‘b’ < 6)

Y podríamos hacerlo mucho más complicado, haciendo uso intensivo de los paréntesis:

( (‘a’ < ‘b’) & (‘b’ < ‘c’) ) | (‘b’ < ‘d’)

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: