【发布时间】:2012-04-27 05:49:40
【问题描述】:
条件运算符 && 和 ||根据
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html 短路,这意味着有时不需要计算第二个操作数。
谁能提供一个条件OR(||)运算符会短路的例子吗?
条件与(&&)运算符的短路行为非常简单,如下所示:
if(false && (1 > 0)) 那么第二个操作数:(1 >0) 不需要评估,但似乎无法找到/想到条件或的示例。
【问题讨论】:
-
当第一个操作数的结果可以定义逻辑运算的结果时,就会发生短路。对于
&&,第一个变为false肯定会产生结果false,而对于||,第一个变为真将肯定产生结果true。因此,true的第一个操作数将始终为||运算符短路。 -
为什么使用 || 不那么直接?它和 && 一样简单。当整个条件的值已知时,表达式的计算将停止。表达式从左到右计算。
-
@MichaelSchmeißer:抱歉,不知道我是怎么错过它的直截了当的。