int i=1;
(i++)+(i++)+(i++)+(++i)+(i++)+(++i)是多少??
哦,shit,我做错了,知道的告诉我结果,还有原理是怎样的

解决方案 »

  1.   

    23
    j=i++是先赋值,然后i又加1
    j=++i是先加1,然后又赋值了
      

  2.   

    (i++)+(i++)+(i++)+(++i)+(i++)+(++i)是多少?? 
     1      2     3    5     ?      ?+(i++)+(++i)   这个最后2个是怎么出来的啊
      

  3.   

    个最后2个是怎么出来的啊那个(i++) 返回的用于计算的是5
    但用完之后,i就等于6了
    然后(++i),先给i+1, 也就是7, 然后再返回用于计算
      

  4.   

    i++和++i的理解是一个方面,可能还有表达式操作数的求值顺序的问题,Java中规定了表达式的操作数求值顺序是从左往右,而C和C++标准中没有规定。
      

  5.   

    23 
    j=i++是先赋值,然后i又加1 
    j=++i是先加1,然后又赋值了1   +   2   +   3   +   5   +   5   +   7   =   23 
    i++   是先赋值再运算 
    ++i   是先运算再赋值 原理是这样,不过出题的哥们可真是够无聊,搞这么多看的眼都花单独两个没什么区别,在表达式就要
    i++       先使用后加 
    ++i       先加后使用 
      

  6.   

    23   
    j=i++是先赋值,然后i又加1   
    j=++i是先加1,然后又赋值了 1       +       2       +       3       +       5       +       5       +       7       =       23   
    i++       是先赋值再运算   
    ++i       是先运算再赋值   
    原理是这样,不过出题的哥们可真是够无聊,搞这么多看的眼都花 

    单独两个没什么区别,在表达式就要 
    i++               先使用后加   
    ++i               先加后使用   
      

  7.   

    (i++)+(i++)+(i++)+(++i)+(i++)+(++i)
    扯开看嘛,楼主主要是对后面2步有困惑,相信楼主也知道i++;++i的区别。
    1+2+3+5,不管是++i还是i++,前面只执行4步,所以4步后i == 5.
    然后再看  这个问题
    int   i=5; 
    11+(i++)+(++i)
    会看了吧。答案很明显  11+5+7 = 23
    上面把答案算成25的朋友多半问题出现在第四步以后,扯开看问题更清晰。
    i++ 是先赋值再运算  ++i 是先运算再赋值 ,所以 后面会 出现  ···+5+5+···
      

  8.   

    无聊呀,真无聊,当时我是用eclipse算的正确无误!!
      

  9.   

    计算之前i = 1;
    从左到右i的变化如下:
    (i++) + (i++) + (i++) + (++i) + (i++) + (++i)
    (1)  + (2)  + (3) +  (5) +  (5) +  (7) = 23;
     一       二        三        四        五       六
    一,i=1, 运算后i++,i变成2
    二,i=2, 运算后i++,i变成3
    三,i=3, 运算后i++,i变成4
    四,i=4,此时++i是先自加后再运算,所以括号里的值为4+1=5;i变成5;
    五,i=5, 运算后i++,i变成6
    六,i=6,此时++i是先自加后再运算,所以括号里的值为6+1=7;i变成7;这个例子的确只能是出现在考试中。
      

  10.   

    1+2+3+5+5+7=23
    分析:
    int i=1;
    (i++)(先付i=1再进行运算)+(i++)(通过上一步的运算,这时的i以是等于2了,所以现在i=2,再次进行运算)+(i++)(走到第三步时,这时的i以是等于3了,所以现在i=3,再次进行运算)+(++i)("++i"这表示的意思是先运算再付值,上一步i==3,再进行i++,所以这是的i等于4,止时的i再进行上次运算,所以止时的i==5了)+(i++)(止时的i=5,再进行运算)+(++i)(这和第四步一样);
      

  11.   

    一点都不无聊
    很有意思的题目问题的关键点我认为有二:
    一是对i++与++i的理解
    二是程序中的trick
    这个trick可以说是计数器导致的
    最主要的是分析最前面的一个加法,即(i++) + (i++)
    这个加法实际上丢掉了一次运算,因为i++的定义是先运算再赋值,而最后只能进行一次赋值,所以这次运算丢掉了一次自增运算
    而后面的第一次++i运算就不一样了
    前面一次运算i++后时i已经是4,这时++i则变成了5,所以是1+2+3+5
    从而最后答案是1+2+3+5+5+7=23