题目如下:
int i = 1;
int j = ++i + i++ + ++i + ++i + i++;
请问最后i是多少?j是多少?
解答思路
在Java中算数运算是从左到右的。上面的式子我们可以用序号分割成以下这样:
int j = ++i(1) + i++(2) + ++i(3) + ++i(4) + i++(5)
- 此时i=1,++i=2,(1)的结果是2
- 此时i=2, ,所以2+2=4,然后i再加1得3. (1)+(2)的结果是4
- 此时i=3,所以(3)先计算++i的结果是4,所以(1)+(2)+(3)的结果是8.
- 此时i=4,(4)的结果为5,(1)+(2)+(3)+(4)=13.
- 此时i=5,(1)+(2)+(3)+(4)+(5)=18,i再自增1,i=6.
所以,最后i=6,j=18。