i=0 没问题  i  = i +(i++)
i++ = 0  i = 0 
0+0=0

解决方案 »

  1.   

    关键在于 i=i+(i++);
    在解释“i+(i++)”时,JVM从左到右取值
    <1>首先取出“i”,结果为0
    <2>然后计算“(i++)”,结果为1
    <3>将<2>的结果跟<1>的结果相加就等于1了
      

  2.   

    i++ 后,i的值当然是1了。这里打印出来的值是0的原因,应该是因为“++”运算符优先于“=”,所以i++后虽然i=1,但又进行了一次赋值,就使i=0了。
      

  3.   

    i=0
    相当于:public class test{
       public static void main(String[] args){
           int i=0;
        int a=0;
           int b=0;
           
           b=i;
           a=i++;    //a=0,i=1 但我们用的是a 的值
           b=b+a;    //实际上就是i=i+(i++);
           System.out.println("i="+i);
       }
    }
      

  4.   

    i++是先取i的值,再把i加1
    ++i是先把i加1,再取i的值