Para comprender la evaluación de cortocircuitos, primero debe comprender qué son los operadores lógicos.
Operadores logicos
Antes de entender el operador, primero debemos saber que el resultado del operador lógico en JAVA es un valor de tipo booleano.
Y lógico "&&"
expresión1 && expresión2
AND lógico significa que el resultado es verdadero sólo si las expresiones en ambos lados del operador son verdaderas .
expresión 1 | expresión 2 | resultado |
real | real | real |
real | Falso | Falso |
Falso | real | Falso |
Falso | Falso | Falso |
lógico O "||"
expresión1 || expresión2
AND lógico significa que el resultado es falso sólo si ambas expresiones son falsas .
expresión 1 | expresión 2 | resultado |
---|---|---|
Falso | Falso | Falso |
Falso | real | real |
real | Falso | real |
real | real | real |
Lógico NO "!"
! expresión 1
Y, o, no entre las tres expresiones lógicas, sólo not es un operador unario .
Cuando la expresión 1 es verdadera, el resultado es falso ;
Cuando la expresión 1 es falsa, el resultado es verdadero .
expresión 1 | resultado |
---|---|
real | Falso |
Falso | real |
evaluación de cortocircuito
Después de comprender los operadores lógicos, aprendamos sobre la evaluación de cortocircuitos.
En primer lugar, puedes pensar en el resultado del siguiente código.
Respuesta:
Los resultados de ambas preguntas son:
¿Por qué esto es tan?
- Para &&, si el valor de la expresión de la izquierda es falso, el resultado de la expresión debe ser falso y no es necesario calcular la expresión de la derecha.
- Para ||, si el valor de la expresión de la izquierda es verdadero, el resultado de la expresión debe ser verdadero y no es necesario calcular la expresión de la derecha.
Si desea escribir código sin evaluación de cortocircuito de todos modos .
Luego, en JAVA, el operador bit a bit "& |" también puede actuar como un operador lógico cuando las expresiones en ambos lados devuelven un valor booleano.
& y | también representan operaciones lógicas si el resultado de la expresión es booleano, pero en comparación con && ||, no admiten la evaluación de cortocircuito.