El artículo anterior cubrió los operadores de comparación, y este artículo cubre los operadores condicionales.
descripción general
Los operadores condicionales son como tomamos decisiones en la vida real, controlan el flujo del programa y producen resultados basados en las condiciones proporcionadas.
Hay tres tipos de operadores condicionales, a saber, condicional y, condicional o y operador ternario, comprendamos cómo se usan estos operadores condicionales en Java.
Los siguientes operadores se proporcionan como operadores condicionales cuyos operandos toman valores de tipo booleano:
operador | ejemplo de entrada | explicar |
---|---|---|
&& | x & & y | Devuelve verdadero si tanto x como y son verdaderos. |
|| | x || es | Devuelve verdadero si x o y es verdadero. |
& | x&y | Devuelve verdadero si tanto x como y son booleanos y ambos son verdaderos. Si ambas variables son de tipo entero, se realiza una operación AND bit a bit. |
| | x | y | Devuelve verdadero si x e y son ambos valores booleanos y uno de ellos es verdadero. Si ambas variables son de tipo entero, se realiza una operación OR bit a bit. |
^ | x^y | Devuelve verdadero si tanto x como y son valores booleanos y x e y son valores distintos. Si ambas variables son de tipo entero, se realiza una operación XOR bit a bit. |
! | !X | Devuelve verdadero si x es falso. |
Ejemplo de código:
package com.test.javaroads.operator;
/**
* @author: javaroads
* @date: 2022/12/4 17:43
* @description:
*/
public class Seven {
public static void main(String[] args) {
int a = 0;
int b = 0;
if ((!(a > 0)) && (!(b > 0))) {
a = 10;
b = 20;
}
if ((a > 15) ^ (b > 15)) {
System.out.println("运算符 = 成立。");
} else {
System.out.println("运算符 = 不成立。");
}
}
}
Resultados de la:
Descripción del código:
- La expresión dentro del bloque if se ejecuta si tanto (!(a > 0)) como (!(b > 0)) son verdaderos. Dado que ni a ni b son mayores que 0 (a > 0), (b > 0) devuelve falso y el operador ! devuelve tanto (!(a > 0)) como (!(b > 0)) se consideran verdaderos
- La expresión dentro del bloque if se ejecuta si (a > 15) o (b > 15) es verdadera. (a > 15) devuelve falso y (b > 15) devuelve verdadero, por lo que ambos son verdaderos.
La diferencia entre &&, || y &, |
Los operadores en &&, || y &, | tienen el mismo significado, pero su comportamiento es significativamente diferente. & devuelve verdadero si los operandos izquierdo y derecho son verdaderos, y devuelve falso si el operando izquierdo es falso, independientemente de si el operando derecho es verdadero o falso. && devuelve falso sin ejecutar el operando derecho si el operando izquierdo es falso, y devuelve falso después de ejecutar el operando derecho si el operando izquierdo es falso.
|| y | devuelven verdadero si el operando de la izquierda o el de la derecha es verdadero, lo que significa que si el operando de la izquierda es verdadero, devuelve verdadero sin importar si el operando de la derecha es verdadero o falso. || Si el operando de la izquierda es verdadero, devuelve verdadero sin ejecutar el operando de la derecha. | Devuelve verdadero después de ejecutar el operando derecho si el operando izquierdo es verdadero.
La diferencia de comportamiento entre &&, || y &, | es si ejecutar el operando derecho cuando el resultado general de la ejecución solo puede determinarse por el resultado del operando izquierdo. Debido a estas propiedades, los operadores && y || también se conocen como operadores de cortocircuito .
Si solo se juzga verdadero o falso, no hay diferencia en el resultado de la ejecución sin importar qué operador se use, pero al realizar algún procesamiento en el operando correcto, debe prestar atención a la diferencia en el comportamiento.
¡Echemos un vistazo al código de abajo!
package com.test.javaroads.operator;
/**
* @author: javaroads
* @date: 2022/12/4 17:51
* @description:
*/
public class Eight {
public static void main(String[] args) {
int a = 5;
if (a > 0 || (a *= 10) > 100) {
System.out.println("a是" + a);
}
int b = 5;
if (b > 0 | (b *= 10) > 100) {
System.out.println("b是" + b);
}
}
}
Resultados de la:
Explicación del código:
- Para el operador ||, si el operando izquierdo es verdadero, el operando derecho no se ejecuta. , el operando de la derecha, que multiplica la variable a por 10, no se procesa cuando se ejecuta la instrucción println porque el operando de la izquierda es verdadero.
- Para el operador |, el operando derecho se ejecuta incluso si el operando izquierdo es verdadero. Multiplique la variable b del operando derecho por 10 y ejecute la sentencia println.