[英]OR operator - which statement is more efficient?
当我使用OR运算符时,只有一个表达式必须为真。 因为Java仅检查第一个表达式,所以第一个if语句是否更有效? 还是Java同时检查两者?
public class Test {
public static void main(String args[]) {
boolean test = true;
if (test || calculate()) {
// do something
}
if (calculate() || test) {
// do something
}
}
public static boolean calculate() {
// processor-intensive algorithm
}
}
if (test || calculate())
当test
为true时,永远不会调用calculate()
,因为||
运算符是短路的,因此当test
为true时,该语句将更有效。
是的 。 因为永远不会调用calculate()
,只要test
为真且它是||
的协定 陈述。
从§15.24开始 ,
条件或运算符|| 运算符就像| ,但仅当其左侧操作数的值为false时,才评估其右侧操作数。
有两个或运算符:
if ( condition | condition2 ){
在这里,它将测试第二条件,而不管第二条件的结果如何。
if ( condition || condition2 ){
在此,仅在第一个条件返回false时才检查第二个条件。
为'and'运算符&和&&&实现相同的双重运算符
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.