,而兩者的差異主要是在於:a++是程式執行完換行後才會+1,++a是一執行到該行時就先+1,
以下為一段Java的程式碼來說明
比較值得的注意的是當在for迴圈內跑a++或++a時,其結果是一樣的,不會有差異性.
public static void main(String[] args) { int a = 1; int b = 2; int c; int d; System.out.println("第一行計算:c = ++b"); c = ++b; System.out.println("a = " + a); //c取得b的值,所以c = + b; System.out.println("b = " + b); System.out.println("c = " + c); /* d尚未做運算,又因沒有預設值,在執行程式會出錯 System.out.println("d = " + d); */ System.out.println(); System.out.println("第二行計算:d = a++"); /*System.out.println("因a++的++屬後做,當剛進來時a的值還是1, 但只要跳離此行換下行執行時,即會做+1的動作,也就是說, 後加1的意思是只要脫離該行即會+1,因此a在脫離d=a++換下行的c++時, 則+1了,因此,其值為2。" ) */ d = a++; System.out.println(); System.out.println("a = " + a); //b與c的值不變,所以c跟b都還是3 System.out.println("b = " + b); System.out.println("c = " + c); //d取得a的一開始的初始值,所以d = 1 System.out.println("d = " + d); System.out.println(); System.out.println("第三行計算:c++"); //a、b與d的值不變,而c的轉換如同a++,所以,最後的值即為4 c++; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); System.out.println("d = " + d); }
輸出結果為:
如改用FOR LOOP 執行:
public static void main(String[] args) { System.out.println("i++ value are :"); for(int i=0;i<10;i++){ System.out.println("i++="+i); } System.out.println("++i value are :"); for(int i=0;i<10;++i){ System.out.println("++i="+i); } }
輸出結果為:
沒有留言:
張貼留言