布尔运算符有哪些?
& 逻辑与 两边都是true,结果是true
| 逻辑或 一边是true,结果就是true
! 逻辑非 取反 !true –> false
^ 逻辑异或 两边只要是不一致就是true
&& 短路与 用法和 & 一样。
|| 短路或 用法和 | 一样
&&和&的区别?
* &&具有短路效果。如果左边结果是false,则右边不执行。
* &是无论左边是false还是true,右边都会执行。
|(逻辑或)和||(短路或)的区别类似
开发中常用&&和||,如果当需求要求无论左边的表达式是true还是false,右边的表达式必须执行,此时必须使用逻辑与,短路与做不到。
例:
System.out.println(5>3 & 5>4); //true
System.out.println(5>3 & 5>6); //false 逻辑与只要有一个是false,结果就是false
System.out.println(5>3 | 5>10); //true
System.out.println(5>11 | 5>10); //false
System.out.println(!false); //true
System.out.println(true^false); //true
System.out.println(false^true); // true
System.out.println(true^true); //false
System.out.println(false^false); //false
//关于短路与
/*
int a = 10;
int b = 10;
System.out.println(a < b & a++ >= b);
System.out.println(a); //11
*/
int a = 10;
int b = 10;
//短路:后边那个表达式不执行.
//什么时候发生短路与?第一个算子结果是false的时候。
//什么时候发生短路或?第一个算子结果是true的时候。
System.out.println(a < b && a++ >= b);
System.out.println(a); //10
注意事项:
* 布尔运算符两边的算子必须是布尔类型,整个表达式的运算结果也是一个布尔类型。