短路与(&&) 和 短路或(||) 采用短路的方式,从左到右计算,只通过计算运算符左边的操作数就能够确定该逻辑表达式的值,而不需要继续计算运算符右边的操作数,极大地提高了效率。
"短路与"和"逻辑与"测试一:
public class Firstproj {
public static void main(String[] args) {
//测试短路
//int c=3/0;
boolean b3=1>2&&2<(3/0);//"短路与",第一个操作数的值为false,则不需要再计算后边的操作数,(3/0)不会报错,而且计算更快,提升了效率
//boolean b3=1>2&2<(3/0);//"逻辑与",计算完左边操作数还会继续计算右边操作数,而且因为(3/0)0不能作为除数,所以会报错
System.out.println(b3);
}
}
因为除数不能为0,用"短路与"会报错:
"短路与"和"逻辑与"测试二:
public class Firstproj {
public static void main(String[] args) {
int i=10;
int j=20;
System.out.println((i++>100) & (j++>100));//逻辑与 false & false
System.out.println("i="+i);
System.out.println("j="+j);
}
}
结果:
public class Firstproj {
public static void main(String[] args) {
int i=10;
int j=20;
System.out.println((i++>100) && (j++>100));//测试与 false & false
System.out.println("i="+i);
System.out.println("j="+j);
}
}
结果:
结论:
逻辑与 & :无论左边真假,右边都要执行。
短路与&&:左边为真,右边执行;左边为假,右边不执行。
逻辑或 | :无论左边真假,右边都要执行。
短路或 ||:左边为假,右边执行;左边为真,右边不执行。