我们比较一下以下两段代码和输出可以很好的理解短路运算:
代码一:
int a = 2;
boolean b = (a<3)&&(a++<3);
System.out.println(b);
System.out.println(a);
输出结果为:
true
3
代码二:
int a = 2;
boolean b = (a<1)&&(a++<1); // (a<2)的返回值是false,程序运行到&&,已经有一个false了,因此b的值一定是false,因此后面的(a++<1)就没有读取的必要了
System.out.println(b);
System.out.println(a);
输出结果为:
false
2