任何人都可以帮助我解决以下问题:
我的代码如下:
if(cond1 && cond2 && .. && cond10)
Run Code Online (Sandbox Code Playgroud)
这里,cond1是昂贵的操作,其输出是布尔值.
现在我的问题是当cond2输出为假时JAVAC会做什么.具体来说,是评估cond3的输出还是停止评估?
更具说明性,
if(cond1 && cond2 && .. && cond10)
//do this
Run Code Online (Sandbox Code Playgroud)
和
if(cond1){
if(cond2){
.
.
.
if(cond10){
//do this
}
Run Code Online (Sandbox Code Playgroud)
在java中是相同的(在执行方式的情况下)?
如果整个表达式是&&or||那么 Java 将使用短路求值。这意味着如果一切都是,&&它将在第一个 false 之后停止,如果一切都是,||它将在第一个 true 之后停止。