我只是想知道为什么我们通常使用逻辑或||
两个布尔值之间不按位或|
,尽管它们都运行良好。
我的意思是,看看以下内容:
if(true | true) // pass
if(true | false) // pass
if(false | true) // pass
if(false | false) // no pass
if(true || true) // pass
if(true || false) // pass
if(false || true) // pass
if(false || false) // no pass
我们可以使用|
代替||
?同样的事情与&
and &&
.
如果您使用||
and &&
形式,而不是|
and &
对于这些运算符的形式,Java 不会费心去单独计算右侧操作数。
问题在于你是否想缩短评估时间——most你想要的时间。
说明短路好处的一个好方法是考虑以下示例。
Boolean b = true;
if(b || foo.timeConsumingCall())
{
//we entered without calling timeConsumingCall()
}
正如 Jeremy 和 Peter 提到的,短路的另一个好处是空引用检查:
if(string != null && string.isEmpty())
{
//we check for string being null before calling isEmpty()
}
更多信息 http://www.java-samples.com/showtutorial.php?tutorialid=65
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)