本帖最后由 江远云 于 2012-3-23 09:27 编辑
一楼是这样的:int x =0,y = 0,i = 10,j = 20;
if(i >0 && j >15){
x++;
System.out.println("x="+x);
}
if(i >10 || j >15){
y++;
System.out.println("y="+y);
}
二楼楼主要补充:补充一点,第一个if语句是i>10 && j>15
结果就变成:
int x =0,y = 0,i = 10,j = 20;
if(i>10 && j>15){
x++;
System.out.println("x="+x);
}
if(i >10 || j >15){
y++;
System.out.println("y="+y);
}
问题:麻烦哪个知道原理的给我讲一下,
原理:&&:左边为flase右边就不运算,有一个为flase结果就为flase。
||:左边为true右边就不运算, 有一个为true结果就为true,
我觉得第一句判断应该是不执行的
int x =0,y = 0,i = 10,j = 20;
if(i>10 && j>15){ //左边i>10为flase,不运算,所以你觉得第一句判断应该是不执行是对的。原因有可能是写成一楼的语句了。
x++;
System.out.println("x="+x);
}
if(i >10 || j >15){ //左边i>10为flase,右边还要运算:右边有一个true,结果就为true
y++;
System.out.println("y="+y);
}
可是为什么结果是x= 1,y =1,我实是不解...
淡定点就知道了,写成两个不同的语句哦
|