最近再次阅读《Java编程思想》此书,发现逻辑运算符这里讲解"短路"现象的示例很好,特此记录下来,以供之后经常阅读。代码如下:
public class TestJava {
public static void main(String[] args) {
System.out.println("----------&&的短路测试----------");
boolean a = ShortCircuit.test1(0) && ShortCircuit.test2(2) && ShortCircuit.test3(1);
System.out.println("a:" + a);
System.out.println("----------||的短路测试----------");
boolean b = ShortCircuit.test1(1) || ShortCircuit.test2(1) || ShortCircuit.test3(4);
System.out.println("b:" + b);
}
}
class ShortCircuit {
static boolean test1(int val) {
System.out.println("test1(" + val + ")");
System.out.println("result:" + (val < 1));
return val < 1;
}
static boolean test2(int val) {
System.out.println("test2(" + val + ")");
System.out.println("result:" + (val < 2));
return val < 2;
}
static boolean test3(int val) {
System.out.println("test3(" + val + ")");
System.out.println("result:" + (val < 3));
return val < 3;
}
}
运行结果如下:
----------&&的短路测试----------
test1(0)
result:true
test2(2)
result:false
a:false
----------||的短路测试----------
test1(1)
result:false
test2(1)
result:true
b:true