代码之家  ›  专栏  ›  技术社区  ›  attofi

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

  •  0
  • attofi  · 技术社区  · 9 年前

    当我使用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
        }
    }
    
    3 回复  |  直到 9 年前
        1
  •  9
  •   Eran    9 年前
    if (test || calculate())
    

    永远不会打电话 calculate() 什么时候 test 是真的,因为 || 运算符短路,因此当 测验 是真的。

        2
  •  1
  •   weston    9 年前

    是的,是的。因为 calculate() 只要 test 是真实的,这是 || 声明。

    从…起 §15.24 ,

    条件或运算符||类似于|,但 仅当其左侧操作数的值 操作数为假。

        3
  •  0
  •   Stultuske    9 年前

    有两个或运算符:

    if ( condition | condition2 ){
    

    这里,它将测试第二个条件,而不管第二个情况的结果如何。

    if ( condition || condition2 ){
    

    这里,只有当第一个条件返回false时,才会检查第二个条件。

    双运算符的相同方式用于“和”运算符&和&&