58. Operadores lógicos

 Conozcamos ahora algo que se llama operadores lógicos, que nos van a permitir extender aún más el uso de los operadores de igualdad y desigualdad para llevar a cabo comparaciones entre dos o más expresiones.

Vamos entonces a regresar a nuestro sketch y, después de los operadores de igualdad y desigualdad, vamos a escribir un comentario para ver cuáles son estos operadores lógicos.

El primer operador es el operador llamado AND, que se representa por dos símbolos &&. Como vemos aquí, también tenemos un segundo operador que es el operador OR, que se representa con un doble símbolo de pipe ||. En español, AND significa "y", y OR significa "o".

Vamos a dar un ejemplo del primer operador llamado AND. Procedamos a declarar una variable que se llame logico, que sea igual a:

cpp
bool logico = (3 == 3) && (4 == 4) && (5 == 5);

Y aquí es donde vamos a hacer uso del conocimiento anterior, es decir, utilizar este operador de igualdad y este operador de desigualdad para concatenar diferentes expresiones y tener un valor resultante verdadero o falso de acuerdo a estas comparaciones.

Vamos entonces a llevar a cabo algunas comparaciones. Por ejemplo, vamos a comparar:

  • 3 == 3: como bien podrías suponer, el valor de esta expresión es verdadero.

Pero con estos operadores que hemos visto anteriormente, nosotros podemos concatenar más expresiones para hacer un conjunto de validaciones y saber si el resultado de todas estas comparaciones es un valor verdadero o falso.

En este caso, vamos a escribir lo que es el símbolo AND (&&), y esto nos va a servir para concatenar una segunda expresión. Como segunda expresión, podemos preguntar:

  • 4 == 4

Y lo que hace este operador es validar si todas las expresiones son verdaderas. En caso de que todas sean verdaderas, vamos a retornar un valor verdadero a esta variable que se llama logico. Podemos concatenar tantas expresiones como queramos. Por ejemplo, podemos concatenar una tercera expresión que sea:

  • 5 == 5

Recuerda que al final siempre se coloca un punto y coma.

Entonces, lo que vamos a hacer aquí es comparar lo que es esta expresión y, como podrás darte cuenta, es un valor verdadero el resultado de esta expresión. Posteriormente, con este AND, comparamos:

  • Verdadero y 4 == 4 (que también da un resultado verdadero)

  • Verdadero y 5 == 5 (que también da un resultado verdadero)

Entonces, como todas estas expresiones dan un resultado verdadero, esta variable logico va a tener un valor verdadero. En dado caso de que una sola expresión no se cumpla en todo este conjunto de expresiones, el resultado de esta variable va a ser falso.

Por ejemplo, si comparamos:

cpp
bool logico = (3 == 3) && (4 == 3) && (5 == 5);

Aunque la primera expresión sea verdadera y la última expresión sea verdadera, tenemos aquí una expresión que nos da un valor falso. Por lo tanto, nuestro operador nos indica que tenemos que regresar a esta variable un valor falso, ya que una de las expresiones no se ha cumplido. Es decir, con que una de las expresiones no se cumpla, todo el resultado va a ser igual a falso.

Vamos a probarlo. Copiamos el nombre de la variable, lo pegamos en el Serial.println, borramos el contenido del monitor serie, iniciamos la simulación y, como puedes apreciar, efectivamente tenemos un valor falso.

Si nosotros cambiamos este valor de 4 == 3 por 4 == 4, lo que provoca que todas las expresiones sean verdaderas, vamos a tener un valor verdadero, ya que todas las condiciones son verdaderas y, por lo tanto, el valor de esta asignación va a ser igual a cierto.

Ahora, examinemos el segundo operador lógico: el operador llamado OR. Para hacer este ejercicio, vamos a declarar una segunda variable que se llame logico2, que sea igual a:

cpp
bool logico2 = (3 == 4) || (4 == 4);

Y vamos a comenzar a hacer algunas comparaciones. Por ejemplo:

  • 3 == 4

  • Aplicamos el operador OR (||)

  • 4 == 4

Colocamos el punto y coma, y lo que vamos a hacer aquí es comparar:

  • ¿3 es igual a 4 o 4 es igual a 4?

¿Y para qué nos sirve este operador? Bueno, este operador nos sirve para saber que si una de las expresiones, cualquiera de ellas, es verdadera, se retornará un valor verdadero a esta variable llamada logico2. Es decir, con que una de las expresiones sea verdadera, se asigna a logico2 un valor verdadero.

El único caso en el cual el resultado logico2 va a ser un valor falso es cuando todos los resultados de estas evaluaciones sean igual a falso.

En este caso, preguntamos:

  • 3 == 4: esto nos da un resultado falso

  • Pero en la segunda expresión tenemos un valor verdadero: 4 == 4, lo cual nos da true

Por lo tanto, una de las condiciones nos ha dado true, y por eso el valor de logico2 va a ser igual a true.

La diferencia, como puedes ver entonces, entre el AND y el OR es que AND nos obliga a que todas las expresiones sean verdaderas, mientras que OR nos obliga a que una de las expresiones sea verdadera para poder asignar a la variable un valor verdadero.


Espero que este post te sea de utilidad. ¡Si tienes alguna pregunta, no dudes en dejarla en los comentarios!

Comentarios

Entradas más populares de este blog

12. Demostracion de como usar Tinkercad para simular Arduino con circuitos

11. Ejemplos Básicos de Leds y Pulsadores

Lectura de Potenciómetro con Arduino Uno en Tinkercad