/*
逻辑(布尔)运算符:
& 逻辑与 (两边的算子都是true,结果才是true)
| 逻辑或 (两边的算子只要有一个是true,结果就是true)
! 逻辑非 (取反)
^ 逻辑异或(两边的算子只要是不一样的,结果就是reue)
&& 短路与
|| 短路或
1.逻辑运算符要求两边的算子都是布尔类型,
并且逻辑运算符最终的运算结果也是一个布尔类型
2.短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象
3.短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象
4.什么情况下会发生短路现象呢?
5.什么时候选择使用逻辑与运算符?什么时候选择使用短路与运算符?
*/
public class OperatorTest03 {public static void main(String[] args) {System.out.println(5>3&5>2);
System.out.println(5>3&5>6);
System.out.println(5>3|5>6);//逻辑与和短路与
int x=10;
int y=8;
//逻辑与
//逻辑与的左右两边必须执行,无论前面是真是假,后面都要执行
System.out.println(x<y & ++x<y);
System.out.println(x);//11//短路与
//短路与后只要执行符号的前半部分发现为假,后半部分不执行,所以x=10不变
System.out.println(x<y && ++x<y);
//System.out.println(x);10//短路与后只要执行符号的前半部分发现为真,后半部分不短路,正常执行,所以x=11
System.out.println(x>y && ++x<y);
System.out.println(x);//11//这种现象被称为短路现象/*
从某种角度来看, 短路与更加智能,由于后面的表达式可能不执行
所以执行效率会更高,这种方式在实际的开发中使用较多。短路与比逻辑与使用的多。
短路与更加常用但是,在某些特殊的业务逻辑中,要求算子必须全部执行,这时候就务必使用逻辑与什么情况下发生短路或?
*第一个表达式执行结果是true,会发生短路或。
什么情况下发生短路与?
*第一个表达式执行结果是false,会发生短路与。
*/}
}