Q:關於i++和++i計算如下公式的結果java
```
public static void main(String[] args) {
int i = 1;
System.out.println("i+++i++: " + (i+++i++));
System.out.println("i: " + (i));
System.out.println("i+++++i: " + ((i++)+(++i)));
System.out.println("i: " + (i));
System.out.println("i+++i+++i++: " + (i+++i+++i++));
System.out.println("i: " + (i));
}
執行結果:
i+++i++: 3
i: 3
i+++++i: 8
i: 5
i+++i+++i++: 18
i: 8
```
A:解釋以下git
i++ 能夠理解爲
```
// 保存初始值
int temp = i;
// 作自增操做
i = i + 1;
// 返回初始值
return temp;
```github
++i能夠理解爲
```
// 作自增操做
i = i + 1;
// 返回自增後的值
return i;
```get
因此上述執行代碼中it
i+++i++ 的解釋爲
----------------
1.先算前面i++,根據上面解釋,返回原來的i,即爲1ast
2.再計算後面的i++,而此時的i已經爲2,根據上面的解釋解釋,返回2查詢
3.最後爲1 + 2 = 3,結果爲3,而此時的i爲3blob
i+++++i 的解釋爲
----------------
1.此時i爲3,先算前面的i++,根據上面解釋,返回原來的i,即爲3static
2.再計算++i,此時的i爲4,因此經過++i計算後爲5,i也爲5view
3.最後爲3 + 5 = 8,結果爲8,而此時i爲5
i+++i+++i++ 的解釋爲
----------------
1.此時i爲5,先算前面的i++,根據上面的解釋,返回原來的i,即爲5,i變爲6
2.計算中間的i++,此時i爲6,返回原來的i,即爲6,i變爲7
3.計算後面的i++,此時i爲7,返回原來的i,即爲7,i變爲8
4.最後爲5 + 6 + 7 = 18,結果爲18,i爲8