因为它的执行顺序是:第一:i = i; 第二: i+1; 所以i还是等于0

解决方案 »

  1.   

    要实现i=i+1的话  语句是 i+=1;
      

  2.   

    如果你要加1,就这样写好了
    i=i+1;
    或者i+=1;
    为什么要用++,这个东西出现简直就是一个失败,让很多人在小问题上迷惑不解而且也没什么意义。
      

  3.   

    为什么要i=i++?
    直接i++就可以了啊
      

  4.   

    建议楼主好好复习下i++和++i的区别
    如果你写i=++i就对了
      

  5.   

    可不可以这么理解呢:先把原先i的值(0)赋给变量i(是一个新的内存空间?),然后原先的内存空间加一,所以后边的i实际上是新的内存空间?为什么大家到了这个问题都采取回避的态度呢?
      

  6.   

    java的编译器在遇到i++和i- -的时候会重新为变量运算分配一块内存空间,以存放原始的值,而在完成了赋值运算之后,将这块内存释放掉.
    为了便于表述用j=i++代替i=i++
    i的原始值存放在后开辟的内存中,最后这个值将赋值给j,这样j=i++后,j就会得到i的值,而i又将自加,所以,在释放内存之后,原来存放j和i的地方将得到值将是:j(此时的值等于初始i值)和i(i自加后的值)。