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麻烦各位解释一下我理解不到。
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麻烦各位解释一下我理解不到。
这一行中,首先是个i++,所以i变成了2,但是加入j的时候还是1,因为i++是先计算后+1,然后到了+ ++i,这时候是先+1,再进行计算,所以i变成了3,所以j=1+3=4,不知道这样理解对不对?
这一行中 第一个i是上面的i,第二个i是i++后的结果,所以得数为4
++i 先加是等于 4
i初始化是 1 ,i++ 之后 i=2, ++i 之后 就是1+1=2 然后就是 2+2=4了!
int i = 1;
int j = i++ + ++i;
其中(i++)=1,然后i=2了,
(++i)就等于3了
结果=4
其次i++是先引用后自加,++i是先自加后引用。
所以首先是个i++,所以i变成了2,但是加入j的时候还是1,因为i++是先计算后+1,然后到了+ ++i,这时候是先+1,再进行计算,所以i变成了3,所以j=1+3=4
所以j=i++ + ++i ...........第一阶段
中i++之后 i++的值为1 而i的值为2
所以变成 j=2+ ++i(i=2,++i的值为2)
所以 j=2+2=4,而i变为3
第一个括号里的i先赋值,就是1了,然后i加加就成了2
第二个括号的i先自加再赋值,就变成3
所以就是1+3=4
第一个括号里的i先赋值,就是1了,然后i加加就成了2
第二个括号的i先自加再赋值,就变成3
所以就是1+3=4