,而兩者的差異主要是在於: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);
}
}
輸出結果為:
沒有留言:
張貼留言