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