逻辑运算符概述

逻辑运算符:

& 逻辑与(可以翻译成并且)

| 逻辑或(可以翻译成或者)

! 逻辑非(取反)

&& 短路与

|| 短路或

非常重要:

逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型。

这是逻辑运算符的特点。

短路与&& 和逻辑与&有什么区别?

​ 首先这两个运算符的运算结果没有任何区别,完全相同。

​ 只不过“短路与&&”会发生短路现象。

什么是短路现象呢?

​ 右边表达式不执行,这种现象叫做短路现象

什么时候使用&&,什么时候使用&?

​ 从效率方面来说,&&比&的效率高一些

​ 因为逻辑与&不管第一个表达式结果是什么,第二个表达式一定会执行。

以后的开发中,短路与&&和逻辑与还是需要同时并存的。

大部分情况下都建议使用短路与&&

只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择逻辑与&。

//接下来理解一下什么是短路现象,什么时候会发生“短路”
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 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>