Java中的短路运算符与非短路运算符

在Java中短路运算符指的是"&&"(与) 和"||"(或) ,非短路运算符指的是"&" 和"|".
1.1短路运算符:顾名思义,短路运算符具有短路功能.
|-如果 "&" 运算符的第一个表达式为false,则第二个表达式就不会执行
|-如果 "|" 运算符的第一个表达式为true,则第二个表达式就不会执行
例如:

class Logic { 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非短路运算符
非短路运算符不管第一个表达式是否可以得出最后结果,都要对第二个表达式进行判断.
class Logic { 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总结:短路运算符只能用于逻辑表达式内,非短路运算符可用于位表达式和逻辑表达式内。也可以说:短路运算只能操作布尔型的,而非短路运算不仅可以操作布尔型,而且可以操作数值型。
【Java中的短路运算符与非短路运算符】但是在判断的时候推荐使用短路运算符进行逻辑判断,因为短路运算符在一定程度上可以提高程序运行的效率

    推荐阅读