Inter1-關於i++和++i

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


進Github查詢代碼

相關文章
相關標籤/搜索