2016-08-19 2 views
-3
int num=0 

for(int i=0;i<5;i++) 
{ 
    num = num++; 
    system.out.println(num); 
} 

私は上記のプログラムの出力と少し混乱しています。出力に0を5回出力します。ループでnum変数がインクリメントされないのはなぜですか?forループでのポストインクリメント

+1

プログラムにはprintステートメントはありません。 – Renzo

+1

このプログラムは何も印刷しません – Amit

+0

@レンゾ、@ Amit ..私はprintステートメントを追加するのを忘れていました。 –

答えて

1

num++は、現在の値num(つまり、0)を返し、次にnumをインクリメントします。ただし、これをnumに再割り当てするため、増分を以前の値で上書きするため、numはプログラム全体で0のままです。

+0

詳細をご記入ください。 – Mordechai

+0

@MouseEvent私は思った。あなたはどんなことを凝縮したいですか? – Mureinik

+0

私は、「num」に何が起こるかを段階的に示しています。しかし、おそらくリンクされた複製は十分かもしれません。 – Mordechai

0

++ numで増分する必要があります。たとえば、次のように

int num=0; 

for(int i=0;i<5;i++) 
{ 
    num = ++num; 
} 

System.out.println(num); 

は出力:

5 

あなたはそれを毎回再割り当てする必要はありませんが、一人でnum++はそれを行うための適切な方法だろう。あなたがnum++++numの違いを知っている必要がありますDifference between ++var and var++

0

は前の回答を参照してください。あなたのケースでは、最初にnumは0に設定されています。num = num++;と言うときは、最初に0からnumまでアジングして++を適用します。方程式の正しい部分が何をするかは本当に問題ではありません...だからこそ、あなたは5 0を持っています。

関連する問題