明白&与&&的区别这个题目就容易解决了。
&是两边都需要判断,&&是如果左边真的话继续判断右边是否为真,但是如果左边为假,则直接跳出if语句,&&右边的就不运行了。
int x = 4;
int y = 5;
if(x++>4&&++y>5)//先判断x与4比较 不大于四所以直接跳出if语句然后执行x++所以x=5,y依然是5
{
x++;
}
System.out.println("x= "+x+", y= "+y);
int x = 4;
int y = 5;
if(x++>4&++y>5)//判断x与4比较 不大于四之后继续向下执行++y,y=6>5跳出IF语句。这是执行x++,所以到执行输出语句时是x=5,y=6
{
x++;
}
System.out.println("x= "+x+", y= "+y);作者: 刘胜寒 时间: 2013-5-3 21:42
短路与非短路....
知道就行了作者: 黄玉昆 时间: 2013-5-3 21:52
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢