public class test {
public static void main(String[] args) {

int  i = 2;
i = i++ +1;
System.out.println(i);
}

}
 
为什么 结果 是3 不是4 啊???
求高手解惑!

解决方案 »

  1.   

    int  i = 2;
    i = i++ + 1;  i = 2 + 1;
    i = ++i + 1;  i = 3 + 1;
      

  2.   

    i = i++ + 1;  i = 2 + 1; //这其中的++什么时候执行。
    又比如
    i=i++ //i结果不变
    i++  //i结果却加1了
    为什么???
      

  3.   

    i = i++ +1; 
    先赋值再自加  
    与 i = (i++)  + 1 ,  一样
      

  4.   

    i++是后增运算,进行后增运算时,首先会有一个临时变量,来保存i的原来的值即i=2.所以你输出的是2+1.
    在运算后,i的值变为i+1.而那个临时变量消失,此时i才变为3.不知道对不对。
      

  5.   

    同意七楼意见。跟编译器有关的。i++时,i=2,当用过i后再++(i=3)。++放在i后,就是先运算完在++。