逻辑运算符:
与(并且) & 全是true才是true。
或(或者) | 至少一个true就是true。
异或 ^ 相同就是false;不同才是true。
非(取反) ! 本来是true变成false;本来是false变成true。
1.逻辑运算符通常连接多个布尔值。
2.如果是两个布尔值进行连接:布尔值A & 布尔值B
3.如果是多个布尔值进行连接:布尔值A & 布尔值B &布尔值C
4.如果是取反运算符,只能用于一个布尔值身上:!布尔值
System.out.println(true & true); //true
System.out.println(true & false); //false
System.out.println(false & false); //false
boolean a = true;
boolean b = false;
System.out.println(a & b); //false
System.out.println(4 > 3 & 10 < 20); //true
System.out.println(5 > 4 | 10 < 20); //true
System.out.println(5 < 4 | 10 > 20); //false
System.out.println(true ^ true); //false
System.out.println(true ^ false); //true
System.out.println(!true); //false
短路使用:
逻辑运算符中的与(&)、或(|)这两个运算符可以双写:
1.短路与:&&
2.短路或:||
短路:左侧已经可以判断到最终结果,那么右侧将不再执行。
1.凡是用到了与、或,都推荐双写。
2.只有与、或能双写。异或、非不能。
System.out.println(3 < 2 & 10 < 20); //false,一个符号,左右都会执行
System.out.println(3 < 2 && 10 < 20); //false,双写,左边可以判断,右侧不会执行
int num1 = 100;
System.out.println( 10<3 && ++num1 < 200); //false
System.out.println(num1); //100,短路效果
int num2 = 20;
System.out.println(10 > 3 || ++num2 > 3); //true
System.out.println(num2); //20
int num3 = 300;
System.out.println(3 > 10 || ++num3 < 1000); //true
System.out.println(num3); //301