public class eg5 {
public static void main (String [] args){
int i=0,j=1;
if ((i++==1)&&(j++ ==2)){
i=42;
}
System.out.println("i="+i+",j="+j);
}
}
我运行后结果是:i=1,j=1
其实我以为是:i=42,j=1
怎么做?
public class eg5 {
public static void main (String [] args){
int i=0,j=1;
if ((i++==1)&&(j++ ==2)){
i=42;
}
System.out.println("i="+i+",j="+j);
}
}
我运行后结果是:i=1,j=1
其实我以为是:i=42,j=1
怎么做?
这就是先赋值后自加的问题,问题出在if ((i++==1)&&(j++ ==2))
你可以把i++和j++放到外面去:i++;j++;if ((i==1)&&(j ==2))....或者if ((++i==1)&&(++ j==2))
i=42就可以出来
不过那个j就会等于二
这个要看i++的执行顺序了,
i++是先执行i=i然后是i=i+1;
所以你的if中i++是不等于1的,
要想达到你以为的结果可以把i++改成++i