1. 程式人生 > >【java基礎】++ -- 運算子詳解

【java基礎】++ -- 運算子詳解

++ -- 運算子詳解

## 關於自增自減運算的問題《java程式設計思想》中是這樣說的:

a、(i++,i--)運算子在運算元後面,先賦值,再運算

b、(++i, --i)運算子在運算元前面,先運算,再賦值

例:

int i = 1;
System.out.println(i-- - ++i);
System.out.println(i++ + ++i);
System.out.println(i);

//輸出結果
0
4
3 

解析:第一行(i-- - ++i) 。輸出0。i的初始值為1,第一個i--,由於運算子在後面所以要先算出這個i--表示式的值為1,然後i再進行--,i的值為0

。表示式的值要繼續參與運算所以也就變成了(1 - ++i)。已知經過前面的運算此時i的值為0,所以++i這個表示式的值為1,此時i的值變成了1。然後表示式的值繼續參與運算。就成了(1 - 1)。所以最後結果為0。

   第二行(i++ + ++i)。第一行運算完之後i的值是1。這裡i++先賦值,再運算。也就是i++表示式為1,再++,所以i的值是2。++i先運算再賦值,++i也就是++2,表示式的值為3,再給i賦值,i也是3。表示式的值繼續參加運算,就是(1 + 3),所以最後輸出4。

     經過上面的運算,所以最後i的值是3。最後一行輸出3。

總結:總之就是表示式的值參與運算,然後再算出運算元的值。如果沒看明白,多讀兩遍應該就能明白了,實在不知道咋解釋。

 

## 再來談談i=i++的問題

// 示例一
int i = 1;
i = i++;
System.out.println(i);
// 輸出結果
1
------分割-----------------------
// 示例二
int i = 1;
i = ++i;
System.out.println(i);
// 輸出結果
2

解析:示例一,i的初始值為1,i++表示式結果為1,然後進行++,i的值為2。再把表示式的結果賦值給i,因此,i為1。

   示例二,i的初始值為1,++i表示式結果為2i的值為2,把表示式的結果賦值給i,i為2。

總結:總之就是把表示式的結果賦值給等號左邊的變數。

如有問題,歡迎指正。