Tabla de contenido
Operadores logicos
Los operadores lógicos se utilizan para operar con datos booleanos y el resultado sigue siendo un dato booleano .
Operador | Cálculo | ejemplo | resultado |
Y | versus | verdad verdad | cierto |
verdadero Falso | falso | ||
falso verdadero | cierto | ||
falso y falso | falso | ||
&& | Cortocircuito con | verdad verdad | cierto |
verdadero Falso | falso | ||
falso verdadero | cierto | ||
falso y falso | falso | ||
| | o | verdadero | cierto | cierto |
verdadero | falso | cierto | ||
falso | cierto | cierto | ||
false | false | falso | ||
|| | Cortocircuito o | cierto || cierto | cierto |
cierto || falso | cierto | ||
falso || cierto | cierto | ||
false || false | falso | ||
^ | XOR | verdadero ^ verdadero | falso |
verdadero ^ falso | cierto | ||
falso ^ verdadero | cierto | ||
false^false | falso | ||
! | no- | !cierto | falso |
!falso | cierto |
Ejercicio:
public class TestOpe11{ public static void main(String[] args){ //逻辑与:& 规律:全对为对。 System.out.println(true&true); //true System.out.println(true&false); //false System.out.println(false&true); //false System.out.println(false&false); //false //短路与:&& 规律:全对为对 //只要左边表达式是false,右边的表达式不会进行运算,结果为false。 System.out.println(true&&true); //true System.out.println(true&&false); //false System.out.println(false&&true); //false System.out.println(false&&false); //false //逻辑或:| 规律:任一为true,结果为true。 System.out.println(true|true); //true System.out.println(true|false); //true System.out.println(false|true); //true System.out.println(false|false); //false //短路或:|| 规律:任一为true,结果为true。 //只要左边表达式是true,右边的表达式不会进行运算,结果为true。 System.out.println(true||true); //true System.out.println(true||false); //true System.out.println(false||true); //true System.out.println(false||false); //false //逻辑异或:^ 规律:运算符两边的布尔值不同时,结果为true。 System.out.println(true^true); //false System.out.println(true^false); //true System.out.println(false^true); //true System.out.println(false^false); //false //逻辑非:! 规律:相反结果。 System.out.println(!true); //false System.out.println(!false); //true } }
resultado de la operación:
-
& 和 &&
El mismo punto : operador & && expresada y operación , si y sólo si el operando en ambos lados del operador son verdaderas , su resultado que es verdad , de lo contrario el resultado es falso.
Diferencia : Al usar & para calcular, no importa si el lado izquierdo es verdadero o falso, se calculará la expresión de la derecha .
Si se utiliza && para el cálculo, cuando el lado izquierdo es falso , la expresión de la derecha no se calculará , por lo que && se denomina cortocircuito y.
Ejercicio:
public class TestOpe12{ public static void main(String[] args){ //左边为false int a=8; System.out.println((5>7)&(a++==2)); //false System.out.println("a="+a); //i=9 int b=8; System.out.println((5>7)&&(b++==2)); //false System.out.println("b="+b); //左边表达式为flase,右边表达式不进行运输算 i=8 //左边为true int m=8; System.out.println((5<7)&(m++==2)); //false System.out.println("m="+m); //i=9 int n=8; System.out.println((5<7)&&(n++==2)); //false System.out.println("n="+n); //i=9 } }
resultado de la operación:
-
| y ||
El mismo punto : Operador | || y expresó u operación , y si el operando en ambos lados de los operadores a ambos lados del valor es cierto , su resultado que es cierto , cuando el valor de los dos lados son fals tiempo E, el resultado es falso .
Diferencia : cuando se utiliza | para el cálculo, la expresión de la derecha se calculará independientemente de si el lado izquierdo es verdadero o falso .
Si usa || para el cálculo, cuando el lado izquierdo es verdadero , la expresión de la derecha no se calculará , por lo que || se llama cortocircuito o.