布尔运算符包括这么几种:
& 逻辑与 两边都是true,结果是true
| 逻辑或 一边是true,结果就是true
! 逻辑非 取反 !true –> false
^ 逻辑异或 两边只要是不一致就是true
&& 短路与 用法和 & 一样。
|| 短路或 用法和 | 一样
&&和&的区别?
* &&具有短路效果。如果左边结果是false,则右边不执行。
* &是无论左边是false还是true,右边都会执行。
|(逻辑或)和||(短路或)的区别
开发中常用&&和||,如果当需求要求无论左边的表达式是true还是false,右边的表达式必须执行,此时必须使用逻辑与,短路与做不到。
例子:
public class transform {
public static void main(String[] args) {
System.out.println(5>2 & 5>4); //true
System.out.println(5>2 & 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
//短路与
System.out.println(a < b && a++ >= b);
System.out.println(a); //10,短路与,第一个式子错误,就不再继续,返回错误
System.out.println(a==b && a++>b);//第一个式子正确才需要判断后面的表达式是否正确
System.out.println(a);//因为第二个式子执行了,所以a为11
System.out.println(a==b && ++a>b);
System.out.println(a);
//短路或
a=10;
b=10;
System.out.println(a==b || a++>b);
System.out.println(a);//10,短路或,第一个正确,第二个式子不执行
System.out.println(a>b||a++>b);
System.out.println(a);//11,第二个式子错误,才需要判断第二个式子
}
* 布尔运算符两边的算子必须是布尔类型,整个表达式的运算结果也是一个布尔类型。