Java短路运算符和非短路运算符

  在Java中短路运算符指的是"&&"(与) 和"||"(或) ,非短路运算符指的是"&" 和"|".

  1.1短路运算符:顾名思义,短路运算符具有短路功能.

    |-如果 "&&" 运算符的第一个表达式为false,则第二个表达式就不会执行

    |-如果 "||" 运算符的第一个表达式为true,则第二个表达式就不会执行

  例如: 

public class Test {
    public static void main(String[] args) {
        int i = 0;
        int j = 0;
        if (++i > 0 || ++j > 0) {
            System.out.println("i的值:" + i);
            System.out.println("j的值:" + j);
        }
    }
}

  因为++i>0为true  所以++j>0将不会被执行. 

  输出的结果就是:  

i的值:1
j的值:0

  1.2非短路运算符

    非短路运算符不管第一个表达式是否可以得出最后结果,都要对第二个表达式进行判断.

public class Test {
    public static void main(String[] args) {
        int i = 0;
        int j = 0;
        if (++i > 0 | ++j > 0) {
            System.out.println("i的值:" + i);
            System.out.println("j的值:" + j);
        }
    }
}

    而非短路逻辑运算符的答案是:

i的值:1
j的值:1

  1.3总结

  短路运算符只能用于逻辑表达式内,非短路运算符可用于位表达式和逻辑表达式内。也可以说:短路运算只能操作布尔型的,而非短路运算不仅可以操作布尔型,而且可以操作数值型。

  但是在判断的时候推荐使用短路运算符进行逻辑判断,因为短路运算符在一定程度上可以提高程序运行的效率

原文地址:https://www.cnblogs.com/Triomphe/p/6826575.html