java中&与&&的区别

原创 2011年10月17日 20:21:58

简单来说,我们经常用的是&&,这个是短路判断,也就是如果之前有一处是判断不成功的,就整个都不成功,例如

int i=0;

int j=0;

if(i++ ==1 &&  j++ ==1){

System.out.println("i=" + i+"  j=" + j);

}else{

System.out.println("else  i=" + i+"  j=" + j);

}

最后输出的是else =1  j=0

如果是&,情况就不同了,这个不短路的。例如

int i=0;

int j=0;

if(i++ ==1 &  j++ ==1){

System.out.println("i=" + i+"  j=" + j);

}else{

System.out.println("else  i=" + i+"  j=" + j);

}

最后输出的是else =1  j=1;

看出区别了么,j的值不同,因为&不管前面个判断是否为真,后面一个表达式都会执行。


收藏助手
不良信息举报
您举报文章:java中&与&&的区别
举报原因:
原因补充:

(最多只允许输入30个字)