public class Test{
public static void main(String args[]){
int i = 1;
int j = i++ + ++i;
System.out.println(j);
}
}
i++ = 1 ; ++i = 2;
1+2 应该等于3啊为什么这里等于4麻烦各位解释一下我理解不到。

解决方案 »

  1.   

    int j = i++ + ++i; 
    这一行中,首先是个i++,所以i变成了2,但是加入j的时候还是1,因为i++是先计算后+1,然后到了+ ++i,这时候是先+1,再进行计算,所以i变成了3,所以j=1+3=4,不知道这样理解对不对?
      

  2.   

    int j = i++ + ++i;
    这一行中  第一个i是上面的i,第二个i是i++后的结果,所以得数为4
      

  3.   

    i++ 后加
    ++i 先加是等于 4
      i初始化是 1 ,i++  之后 i=2, ++i 之后 就是1+1=2 然后就是 2+2=4了! 
      

  4.   


    int i = 1;
    int j = i++ + ++i;
    其中(i++)=1,然后i=2了,
    (++i)就等于3了
    结果=4
      

  5.   

    首先++的运算级别比+高
    其次i++是先引用后自加,++i是先自加后引用。
    所以首先是个i++,所以i变成了2,但是加入j的时候还是1,因为i++是先计算后+1,然后到了+ ++i,这时候是先+1,再进行计算,所以i变成了3,所以j=1+3=4
      

  6.   

    因为i++与++i属于表达式,而这个表达式是有值的,这与变量的值有区别。
    所以j=i++ + ++i  ...........第一阶段
    中i++之后 i++的值为1 而i的值为2
    所以变成 j=2+ ++i(i=2,++i的值为2)
    所以 j=2+2=4,而i变为3
      

  7.   

    我觉得可以这样想:j=(i++)+(++i);
    第一个括号里的i先赋值,就是1了,然后i加加就成了2
    第二个括号的i先自加再赋值,就变成3
    所以就是1+3=4
      

  8.   

    我觉得可以这样想:j=(i++)+(++i);
    第一个括号里的i先赋值,就是1了,然后i加加就成了2
    第二个括号的i先自加再赋值,就变成3
    所以就是1+3=4