&&与&操作符的区别
&与&&有类似之处,二者都可以表示“与”操作,其结果都是布尔值。但是&&是按照“短路”方式计算,即当第一个条件为false时,不在计算第二个操作。而&则是将两个条件同时计算后在得到结果。
例如下面代码:
publicstaticvoid main(String[]args) {
int a=0;
System.out.println("&&操作:"+((a>0)&&(a++<2))+",a="+a);
System.out.println("&操作:"+((a>0)&(a++<2))+",a="+a);
}
其输出结果为:
&&操作:false,a=0
&操作:false,a=1
在执行&&操作时,第一个条件a>0不成立,因而程序不在执行a++操作,最终a的值为0;而在执行&操作时,a++操作也被执行了。