Algoritmos

Condicionales y operadores booleanos

Los operadores booleanos permiten hacer comparaciones entre valores de elementos de Descartes y devolver el valor 1 o 0 dependiendo del resultado de la comparación. Los elementos que se comparan pueden ser constantes, variables, e inclusive valores de retorno de funciones. Cuando el resultado de comparación es verdadero, se arroja un valor de 1, y cuando es falso, se arroja un valor de 0. A continuación se muestran los operadores booleanos en DescartesJS.

Los operadores booleanos y su uso en condicionales

A continuación se presenta una lista de cuáles son los operadores, así como la forma en que se usan para comparar valores.

==: El operador == (dos signos de igualdad uno tras otro) compara el elemento antes del operador con aquél después. Si los valores de estos elementos son iguales se considera que el resultado de la comparación es verdadero (que arroja un valor de 1), y de lo contrario será falso (que arroja un valor de 0). Por ejemplo, (2==2) arrojaría un valor de 1 al ser una condición verdadera, pero (2==1) arrojaría un 0 al ser falsa. Aunque DescartesJS tolera hacer este tipo de comparación con un solo signo de igualdad, se recomienda siempre usar el doble signo para evitar confusiones. Recuerda que un solo signo de igualdad corresponde a una asignación.

!=: El operador != (una admiración de cierre seguida por un signo igual) compara el elemento antes del operador con aquél después. Si los valores de estos elementos son distintos se considera que el resultado de la comparación es verdadero (que arroja un valor de 1), y de lo contrario será falso (que arroja un valor de 0). Por ejemplo, (2!=2) arrojaría un valor de 0 al ser una condición falsa, pero (2!=1) arrojaría un 1 al ser verdadera

<: El operador < compara el elemento antes del operador con aquél después. Si el valor de aquél antes del operador es menor que aquél después, se considera que el resultado de la comparación es verdadero (que arroja un valor de 1), y de lo contrario será falso (que arroja un valor de 0). Por ejemplo, (2<1) arrojaría un valor de 0 al ser una condición falsa, pero (1<2) arrojaría un 1 al ser verdadera.

>: El operador > es parecido al <. Si el valor del elemento antes del operador es mayor que aquél después, se considera que el resultado de la comparación es verdadero (que arroja un valor de 1), y de lo contrario será falso (que arroja un valor de 0). Por ejemplo, (2>1) arrojaría un valor de 1 al ser una condición verdadera, pero (1>2) arrojaría un 0 al ser falsa

<=: El operador <= (un signo de menor que seguido de un igual) se comporta como el <, pero permite también la igualdad. Si el valor de aquél antes del operador es menor o igual que aquél después, se considera que el resultado de la comparación es verdadero (que arroja un valor de 1), y de lo contrario será falso (que arroja un valor de 0). Por ejemplo, (2<=2) arrojaría un valor de 1 al ser una condición verdadera, pero (3<=2) arrojaría un 0 al ser falsa.

>=: El operador >= (un signo de mayor que seguido de un igual) se comporta como el >, pero permite también la igualdad. Si el valor de aquél antes del operador es mayor o igual que aquél después, se considera que el resultado de la comparación es verdadero (que arroja un valor de 1), y de lo contrario será falso (que arroja un valor de 0). Por ejemplo, (3>=3) arrojaría un valor de 1 al ser una condición verdadera, pero (3>=4) arrojaría un 0 al ser falsa

!: El operador ! (un signo de admiración de cierre) se aplica antes de alguna condición o valor. Lo que hace es negar el resultado de dicha comparación. Es decir, si la comparación era verdadera (dando un valor de 1), la vuelve 0 (o falsa), pero si era falsa (dando un valor de 0), la vuelve 1 (o verdadera). Por ejemplo, !(3>4) devolvería un 1 (verdadero), mientras que !(3<4) devolvería 0 (falso). Otro ejemplo más directo es !1, que devolvería 0, o !0, que devolvería 1.

|: El operador | (o pipe) consiste en una barra vertical que se puede introducir normalmente oprimiendo la tecla a la izquierda del número 1 en el teclado. Separa a dos condiciones (o valores de 0 ó 1) y, si al menos una de las dos es verdadera, de estas dos condiciones se arroja un resultado de 1 (o verdadero). Por ejemplo, (2>3)|(3>1) arrojaría un 1 (o verdadero) pues la condición a la derecha es verdadera. Igualmente, (2>3)|1 arrojaría 1, pero (2>3)|(3>4) arrojaría 0. A este operador se le conoce como or.

&: El operador & (o ampersand) separa a dos condiciones (o valores de 0 ó 1) y, si al menos una de las dos es falsa, de estas dos condiciones se arroja un resultado de 0 (o falso). Por ejemplo, (2>3)&(3>1) arrojaría un 0 (o falso) pues la condición a la izquierda es falsa. Igualmente, (2>3)&1 arrojaría 0, pero (2<3)&(3<4) arrojaría 1 al ser ambas condiciones verdaderas. A este operador se le conoce como and.

Las condicionales usan condiciones para asignar valores a una variable. Digamos que se quiere asignar a la variable a el valor de 10 si el valor de la variable u es mayor o igual que 50, pero de lo contrario se le desea asignar 20.5. Entonces se debe introducir el siguiente texto:

a=(u>=50)?10:20.5

Nota que la instrucción tiene primero a la variable a a la que se le asignará el valor. Viene seguida, como de costumbre, del signo = de asignación, pero inmediatamente después de éste hay un paréntesis dentro del cual está la condición deseada. Después del paréntesis viene un signo de interrogación de cierre. Justo después de éste viene el valor a asignar si la condición es verdadera. Después viene un signo de dos puntos (:). El valor de asignación si la condición no es verdadera viene después de este signo. Considera como otro ejemplo la siguiente asignación:

a=((c<2)|(d>1))?j:sqrt(k)

Para interpretar esta asignación, considera que las variables c y d tienen valores 1 y 0, respectivamente. c<2 devuelve un valor de 1 (pues la condición es verdadera), pero d>1 devuelve un 0 (pues la condición es falsa). Después se comparan los resultados de ambas condiciones. Es decir, 1|0. Como al menos uno de los resultados de las condiciones fue 1 (o verdadero), el resultado del operador | es 1. Así, se asigna el valor después de ? a la variable a, que es el valor que tenga la variable j. Si las variables c y d tuvieran valores 3 y 0, respectivamente, entonces a a se le asignaría el valor de la raíz cuadrada del valor de la variable k.