逻辑运算符,操作的都是boolean类型的变量或常量,而且运算得结果也是boolean类型的值。
运算符说明:
& 和 &&:表示"且"关系,当符号左右两边布尔值都是true时,结果才能为true。否则,为false。
| 和 || :表示"或"关系,当符号两边布尔值有一边为true时,结果为true。当两边都为false时,结果为false
! :表示"非"关系,当变量布尔值为true时,结果为false。当变量布尔值为false时,结果为true。
^ :当符号左右两边布尔值不同时,结果为true。当两边布尔值相同时,结果为false。
理解:异或,追求的是“异”!
逻辑运算符用于连接布尔型表达式,在Java中不可以写成 3 < x < 6,应该写成x > 3 & x < 6?
? - 相同点:如果符号左边是true,则二者都执行符号右边的操作
? - 不同点:& : 如果符号左边是false,则继续执行符号右边的操作
? ? ? ? ? ? ? ? ? ? ? ? && :如果符号左边是false,则不再继续执行符号右边的操作
? - 建议:开发中,推荐使用 &&?
????- 相同点:如果符号左边是false,则二者都执行符号右边的操作
? ? - 不同点:| : 如果符号左边是true,则继续执行符号右边的操作
? ? ?? ? ? ? ? ? ? ? || :如果符号左边是true,则不再继续执行符号右边的操作
? ? - 建议:开发中,推荐使用 ||
int a = 3;
int b = 4;
int c = 5;
//&和&&的区别
System.out.println((a > b) & (a++ > c));//false
System.out.println("a = " + a);//a = 4
System.out.println((a > b) && (a++ > c));//false
System.out.println("a = " + a);//a = 4
System.out.println((a == b) && (a++ > c));//false
System.out.println("a = " + a);//a = 5
//|和||的区别
System.out.println((a > b) | (a++ > c));//true
System.out.println("a = " + a);// a = 6
System.out.println((a > b) || (a++ > c));// true
System.out.println("a = " + a);// a = 6
System.out.println((a == b) || (a++ > c));// true
System.out.println("a = " + a); // a = 7