2016-03-22 3 views
0

変数k = 5があり、++ kを行うと、k = 6の新しい値が得られます。ポスト/プリインクリメントの混乱

class test { 
    public static void main(String args[]){ 
     for(int i =0; i<10; i++){ 
      System.out.println(i); 
     } 
     int x = 0; 
     x++; 
     System.out.println(x); 
    } 
} 

出力:

0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
1 

このコードでは、

k = 5; 
System.out.println(k++); //prints 5, but now that k has appeared the second time, its value is incremented to 6 
System.out.println(k); //prints 6 

しかし:プログラムでの二回目は、それが例えばのために6に変更した場合でありますループでは、変数iは2回目(System.out.println(i))に表示されますが、その値は0のままです。しかし、xの場合は2回目に表示されます(System.out.printlnバツ); )その値はインクリメントされます。 なぜですか?ポストとプリインクリメントの仕組みが分かりません。

+0

forループは、i ++を実行する前に実行されます。 – softwarenewbie7331

+0

ああ、そうです。 「ポストインクリメント(i ++)とプリインクリメント(++ i)演算子はどのようにJavaで動作しますか?」私の質問にはすでに答えがあります。投稿できません。モデレータはこの質問を削除できますか? – User2956

+0

申し訳ありませんが重複としてマークしました。あなたの質問は、実際にポストインクリメントがforループで起こったときです。 –

答えて

1
コードについて

for(int i =0; i<10; i++){ 
     System.out.println(i); 
    } 

それは私< 10の条件を満足し、変数を印刷し、最後に、私は、変数をインクリメントした場合、まず、iは0に初期化される変数は、次にチェックします。

forループがどのように動作するかを示します。

書いた2番目のコードでは、変数xをインクリメントし、最後にxの値を出力します。