i++/i--
先使用變量的值,然后改變該變量的值;
++i/--i
先改變該變量的值,然后使用變量的值;
學習Java的時候沒有思考過java中變量自增的原理,今天遇到一道java題目,有點懵:
int i = 0; i = i++;
最終變量i的值到底是變成1呢還是保持為0呢?
java中變量自增、自減的實現其實使用了一個臨時中間變量作為緩存。
以i++為例:
1 public static void main(String[] args) { 2 int i = 0; 3 int j = i++; 4 }
以上代碼其實相當於:
public static void main(String[] args) { int i = 0; int temp = i; i += 1; int j = temp; }
所以,i = i++的結果是i的值為保持不變。
public static void main(String[] args) {
int i = 0;
i = i++;
}
其實等於
public static void main(String[] args) {
int i = 0;
int temp = i;
i += 1;
i = temp;
}