逻辑运算符概述
逻辑运算符:
& 逻辑与(可以翻译成并且)
| 逻辑或(可以翻译成或者)
! 逻辑非(取反)
&& 短路与
|| 短路或
非常重要:
逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型。
这是逻辑运算符的特点。
短路与&& 和逻辑与&有什么区别?
首先这两个运算符的运算结果没有任何区别,完全相同。
只不过“短路与&&”会发生短路现象。
什么是短路现象呢?
右边表达式不执行,这种现象叫做短路现象
什么时候使用&&,什么时候使用&?
从效率方面来说,&&比&的效率高一些
因为逻辑与&不管第一个表达式结果是什么,第二个表达式一定会执行。
以后的开发中,短路与&&和逻辑与还是需要同时并存的。
大部分情况下都建议使用短路与&&
只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择逻辑与&。
//接下来理解一下什么是短路现象,什么时候会发生“短路”
int x = 10;
int y = 11;
System.out.println(x > y & x > y++);//左边的x>y表达式结果已经是false了,其实整个表达式的结果已经确定是false了,按道理来说右边的表达式不应该执行。
System.out.println(y);//12
//通过这个测试:x>y++这个表达式执行了。
int m = 10;
int n = 11;
//使用短路与&&的时候,当左边的表达式为false的时候,右边的表达式不执行
System.out.println(m > n && m > n++);
System.out.println(n);//11
问题:什么时候发生短路或现象?
|| 短路或
“或”的时候只要有一边true,结果就是true
所以,当左边表达式结果是true的时候,右边的表达式不需要执行,此时会短路。
当第一个为真的时候短路
版权声明:本文为ofshitao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。