示例:
int i = 0;
if(false && (i++) > 0){ // 判断第一个false之后,直接跳出if
System.out.println("HelloWorld");
}
System.out.println("第一次输出i:" + i);
if(false & (i++) > 0){ // 判断第一个false之后,继续判断后面的条件,最后跳出if
System.out.println("HelloWorld");
}
System.out.println("第二次输出i:" + i);
输出结果:
第一次输出i:0
第二次输出i:1
- 当使用&&时,如果左边的条件为false,那么&&后面的条件就不用再判断了,直接按false处理(因为与操作,有一个为假就是假)。
- 当使用&时,即使左边条件为false,&后面的条件也会继续判断。
总结:&&具有短路效果,而&没有,在代码中合理利用该机制可以提高代码的执行效率。