"¡Saludos, Amigo! Estaba tan entusiasmado resolviendo problemas de lógica que no me di cuenta de que entraste. Aquí te dejo uno: si los cocodrilos vuelan, entonces la nieve es blanca. Hay un cocodrilo volador. ¿Cuál es la conclusión?"
"Um... ¿Entonces llegamos a la conclusión de que la nieve es blanca?"
"¡Excelente! Pasaste la prueba de iniciación. Estás listo para dominar el siguiente tema. Se llama 'operadores lógicos'. Y comenzaremos con la lógica booleana. Instintivamente, ya lo sabes. Eres un robot, después de todo . Solo necesitamos modificar su configuración para que coincida con el lenguaje Java".
"¿Lógica booleana? Hace poco me hablaron del tipo booleano..."
"Sí, aquí hay una conexión directa. Las expresiones booleanas solo pueden ser verdaderas o falsas. Y da la casualidad de que este tipo de lógica tiene que ver con expresiones que son verdaderas o falsas, y combinaciones de tales expresiones. Por ejemplo, la expresión 18 < 25 siempre es verdadero y 7 < 5 siempre es falso. La expresión (i < 10) depende del valor de i. Y si la expresión se evalúa, por ejemplo, como verdadera, entonces podemos pedirle al programa que haga algo".
"Ahh, lo entiendo. Las expresiones booleanas nos permiten no solo sacar conclusiones lógicas, sino también crear bifurcaciones en los programas".
"Exactamente. Lo principal es aprender a escribirlos. Por ejemplo, en Java no puedes simplemente ir y escribir la expresión 18 < age <65
. Esto sería sintácticamente incorrecto y el programa no compilará.
"Pero puedes escribirlo así:
(18 < age) AND (age < 65)
Por supuesto, en realidad no usamos la palabra INGLÉS AND
. En su lugar, necesita un operador booleano . Es decir, 'Y' se representa de manera diferente.
"Hay tres operadores lógicos en Java: AND
(&&), OR
(||), NOT
(!).
La buena noticia es que puede usar paréntesis para construir expresiones lógicas de cualquier complejidad.
La mala noticia es que los desarrolladores de Java decidieron usar la notación del lenguaje C en lugar de las palabras and
, or
y not
.
Mira a la pantalla:
operador lógico | Expectativa | Realidad |
---|---|---|
AND (∧) |
and |
&& |
OR (∨) |
or |
|| |
NOT (¬) |
not |
! |
"En realidad no es tan malo... Bastante compacto. Casi los he memorizado".
"Bueno, eso es maravilloso. Aquí hay algunos ejemplos del uso de operadores lógicos en Java:
Expresión | Interpretación | Explicación |
---|---|---|
(0 < a) && (a < 100) |
(0 < a) and (a < 100) |
(0 < a) AND (a < 100) |
(!a) && (!b) |
(not a) and (not b) |
(NOT a) AND (NOT b) |
!(!a || !b) |
not((not a) or (not b)) |
NOT((NOT a) OR (NOT b)) |
Ejemplos de uso de operadores de comparación y variables booleanas
"Recuerda, amigo, donde sea que puedas escribir una expresión lógica, puedes escribir una variable lógica".
"¿Como es que?"
"Quiero decir que puedes escribir expresiones lógicas de diferentes maneras. Por ejemplo:
Código | Explicación |
---|---|
|
Si el valor de la edad está entre 18 y 65 , se muestra la frase "Puedes trabajar". |
|
Creamos una isYoung variable y movimos la primera parte de la expresión dentro de ella. Simplemente reemplazamos age >= 18 con age < 18 . |
|
Creamos una variable isOld y movimos la segunda parte de la expresión dentro de ella. Además, age <= 65 fue reemplazado por age > 65 . |
"Estos tres ejemplos son equivalentes. Solo en el segundo ejemplo movimos parte de la expresión de la if
declaración a una variable booleana separada ( isYoung
). En el tercer ejemplo, movimos la segunda parte de la expresión a una segunda variable ( isOld
). Por cierto, el valor predeterminado de una variable booleana es false
".
"Lo recordaré. Espero".
aritmética lógica
"Ahora repasemos brevemente las operaciones lógicas. Obedecen reglas muy simples y lógicas (¡cómo no podía ser de otra manera!).
“Primero, veamos cómo OR
funciona el operador. También se le conoce como ||
o disyunción .
Expresión | Resultado |
---|---|
true || true |
true |
true || false |
true |
false || true |
true |
false || false |
false |
"¿Puedes deducir ahora cuál a || b
es el resultado de la expresión basado en la tabla?"
"¡Veo!" El valor de una expresión es true
si al menos un término de la expresión es true
. Si ambos son false
, entonces el resultado es false
.
"Eso es correcto. Ya que eres tan inteligente, echa otro vistazo a la tabla e imagina que false
es 0 y true
es 1. Cuando lo miras de esa manera, ¿el ||
comportamiento del operador te recuerda algo de la aritmética ordinaria?"
"Um... Bueno, es un poco como una suma... Pero cuando sumas, 1 + 1 no es igual a 1".
"Hay un sentido en el que es igual si solo estamos trabajando con 0 y 1. Pero no te molestes con eso ahora. Lo importante es que notaste la similitud entre la operación y la suma. Esto significa que ||
no No se sorprenda por el hecho de que esta operación a menudo se denomina 'suma lógica'.
"Entiendo."
"Ahora el operador de conjunciónAND
, también conocido como &&
, también conocido como , entra en escena.
Expresión | Resultado |
---|---|
true && true |
true |
true && false |
false |
false && true |
false |
false && false |
false |
"Según tengo entendido, el resultado de una expresión es true
solo si los dos valores que componen la expresión son true
. De lo contrario, siempre es false
".
"¡Bien hecho, Amigo! Estás absorbiendo todo esto como una esponja. ¿Ves otra similitud con la aritmética?"
"¡Multiplicación!"
"Exactamente. Así que aquí tenemos una 'multiplicación lógica'".
"Luego nos fijamos en el NOT
operador, también conocido !
como el inverso lógico .
Expresión | Resultado |
---|---|
!true |
false |
!false |
true |
"Bueno, aquí todo es bastante simple. El operador cambia true
a false
y viceversa".
"Exactamente. Aquí hay algunas expresiones útiles para ti:"
Expresión | Resultado |
---|---|
m && !m |
false |
m || !m |
true |
!(a && b) |
!a || !b |
!(a || b) |
!a && !b |
GO TO FULL VERSION