public class jiajia
{
public static void main(String[] args)
{
int i=3;
int count=(i++)+(i++)+(i++);
System.out.println(i);
System.out.println(count);
  }
}运算结果为:
6
12请问i的值为什么是6? 
count的值为什么会是12
想了几天了一直想不明白 count的值为什么是3+4+5呢。
我的想法是:  i++应该等于3吧,三个i++不就是3+3+3吗???
同样++i也弄不明白,先把i++弄明白再说++i吧!!!先谢过各位大哥、大姐

解决方案 »

  1.   

    哎,这个弄清了也没有什么意义啊,这个+也是有优先级的,第一个i++后i是4,第二个过后是
    5,第三个是6。所以i是6。至于count是12是这样的,j=i++后,i=4,j=3,于是count=12。这个实际是不会这样用的
      

  2.   

    int i=3;
    int count=(i++)+(i++)+(i++);
    等价于
    int i = 3;
    int x = i++; // 4
    int y = i++; // 5
    int z = i++; // 6
    int count = x + y + z; // 12
      

  3.   

    i++是调用一次之后+1
    ++i是在调用之前+1
    int count=(i++)+       (i++)+        (i++);
               第一次调用   第二次调用   第三次调用
               前 中 后      前 中 后     前 中  后
               3   3  4       4  4  5     5   5   6
    所以i为调用后的=6
        count为调用i的过程中
        为3+4+5
      

  4.   

    如果变成这样可能会是3+4+5int count=(++i)+ (++i)+ (++i);
      

  5.   

    路过,先好好把自己的系统声明为Windows类的再说上面的话哦,换别的从右到左读表达式的系统,你上面的一切讨论还有意义吗?
    先把基础学好,再提问题!
      

  6.   

    i++是先用i的值,然后i的值加一;
    ++i是i的值先加一,然后再用i的值!!!
      

  7.   

    切记,i++是先调用再执行
          ++i是先执行再调用
    所以在用时要注意,i值的变化!!
      

  8.   

    切记,i++是先调用再执行
          ++i是先执行再调用
    所以在用时要注意,i值的变化!!
      

  9.   

    int count=(i++)+(i++)+(i++);
    从右向左执行,也就是count=5+4+3, 
    最后执行第一个i++, 即5++ = 6
      

  10.   

    用到3个++,就相当于+3,不就是6吗?第一个参与运算的i=3,第二个参与运算的i=4,第三个参与运算的i=5,3+4+5=12
      

  11.   

    我也是新手,不好意思来点解释,不过潭浩强教授说过:不要写别人看不懂,自己也不清楚究竟是什么结果的语句或表达式这个你记住就好啦!
    宁愿用 a=a+1;也不要用a=a++;(如果你分不清++和=的优先顺序)
      

  12.   

    i++是调用一次之后+1
    ++i是在调用之前+1
    int count=(i++)+       (i++)+        (i++);
               第一次调用   第二次调用   第三次调用
               前 中 后      前 中 后     前 中  后
               3   3  4       4  4  5     5   5   6
    所以i为调用后的=6
        count为调用i的过程中
        为3+4+5
      

  13.   

    大意了;count算对了 i错了仔细想了一下,呵呵i++ 使用i,然后i自增
    使用(i++) 实际就是使用i, 使用了后将i自增从本质理解的
      

  14.   

    这类问题我也认为没必要深入研究,实际是不怎么用的到的!
    其实问题也很简单:
    1. 你首先得弄懂楼上说的:i++是先赋值再+1,++i是先+1再赋值;
    2. 不管是i++ 还是++i 反正它一共自增3次,最后打印肯定是6;
    3. 至于count的结果就是取i不同时期的值相加。
      

  15.   

    这类问题我也认为没必要深入研究,实际是不怎么用的到的!
    其实问题也很简单:
    1. 你首先得弄懂楼上说的:i++是先赋值再+1,++i是先+1再赋值;
    2. 不管是i++ 还是++i 反正它一共自增3次,最后打印肯定是6;
    3. 至于count的结果就是取i不同时期的值相加。
      

  16.   

    这类问题我也认为没必要深入研究,实际是不怎么用的到的!
    其实问题也很简单:
    1. 你首先得弄懂楼上说的:i++是先赋值再+1,++i是先+1再赋值;
    2. 不管是i++ 还是++i 反正它一共自增3次,最后打印肯定是6;
    3. 至于count的结果就是取i不同时期的值相加。