繁体   English   中英

OR运算符-哪个语句更有效?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM