本帖最后由 杜超 于 2013-2-24 11:59 编辑
lass Demo
{
public static void main(String[] args)
{
int x=0,y=1;
if(++x==y--&x++==1||--y==0)
System.out.println("x="+x+",y="+y);//x=2,y=0
else
System.out.println("y="+y+",x="+x);
}
}
输出结果y=0明白,x=2不明白。大家看看我哪分析的不对:++x==y--&x++==1,x先自增为1与y比较为true(然后y自减为1),x++==1为false,所以++x==y--&x++==1为false,||右边参与运算,--y==0为true,所以执行System.out.println("x="+x+",y="+y);输出x=2,y=0,我算的是x=1,y=0,再说x的初始化值为0,自增只能为1,不明白x=2怎么运算出来的?求解? |
|