http://community.csdn.net/Expert/topic/3885/3885309.xml?temp=.9122278

解决方案 »

  1.   

    i++是先确定i的值再对i进行操作,后增量则相反,换成++i就是1了。这是我的理解,我也是才学。
      

  2.   

    前序递增/前序递减 :先进行运算,后指派其值
    后续递增/后续递减 :先指派其值,后进行运算 i=i++; 先将 0 指派给 i,所以为0         int i=0;
             int b=0;
             b=i++;
             System.out.println(b);
             System.out.println(i);结果:
    0
    1
      

  3.   

    在java中运算符的运算规则你可以参考一些书籍!
       i++与++i是有很大的区别的!
       i=++i; java是先对i进行+1运算,然后再把值赋给i
       i=i++; java是先把i的值赋给了i,然后再进行i+1运算,所以你那样 i 肯定还是 0 了!
      

  4.   

    参考第二版的Java语言规范第14,15章有如下结论:程序的运行基本上是语句执行的过程。有一种语句叫表达式语句,表达式语句通过评估
    表达式的值得以执行。有一种表达式叫简单赋值表达式。
    其结构如下:left-hand = righ-hand简单赋值表达式的评估步骤如下:
    1 对left-hand评估以确定一个变量。
    2 对right-hand评估以得到一个值。
    3 将步骤2得到的值保存进步骤1所确定的变量中。简单赋值表达式的值即是 赋值以后,left-hand所确定的变量的值。有一种表达式叫后增表达式。
    其结构为:
    operand ++后增表达式的评估步骤如下:
    1 对operand评估以确定一个变量。
    2 对步骤1中的变量进行增1操作。后增表达式的值是 没有增1操作前operand所确定的变量的值。回过来分析(i的初始值为0) 
    i=i++i=i++ 是简单赋值表达式,所以其评估过程是1 确定变量i
    2 评估i++
      2.1 确定变量i
      2.2 i增1,这时i的值为1
    3 i++表达式的值是0,于是i的值被赋为0如上分析,最后i的值为0。