1

重複の可能性:
pre Decrement と post Decrement
++i と i++ の違いは何ですか?

私はちょうどそれを実現しました

int i=0;
System.out.println(i++);

1の代わりに0を出力します。はインクリメントされて印刷されたと思いました。逆のことが起こるようです。

なんで?

4

9 に答える 9

12

これらは、プリインクリメント オペレータとポストインクリメント オペレータです。この動作は正確です。

  • i++元の値を返します。
  • ++i新しい値を返します。
于 2012-09-09T18:17:27.107 に答える
2
System.out.println(i++);

最初に i の値を出力してから、i をインクリメントする必要があります。そのポストオーダーインクリメント。

  • i++ -> ポスト オーダー インクリメント
  • ++i -> 事前注文インクリメント
于 2012-09-09T18:19:12.800 に答える
2
++i will print 1
i++ will print 0 
于 2012-09-09T18:19:29.537 に答える
2

i++i を返し、インクリメントすることを意味します。したがって、i の後の ++ です。

++iは、i をインクリメントしてから返すことを意味します。したがって、i の前に ++

于 2012-09-09T18:21:40.957 に答える
2

インクリメントを行うi++と、次の命令までインクリメントは行われません。ポストインクリメントといいます。

于 2012-09-09T18:18:47.290 に答える
1

ここで見つけることができるように: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.htmlには、i++ と ++i の 2 つの増分演算子があります。++i は、i++ が行うと思っていたことを行います。i++ は、他の目的で使用した後に値を増やします (詳細については、リンクを参照してください)。

于 2012-09-09T18:20:01.143 に答える
1

に指定された値は、System.out.println(i++);最初に 0 が割り当てられているため、インクリメントされます。実行しようとするとSystem.out.println(++i);、1 が表示されます。

于 2012-09-09T18:31:57.217 に答える
1
  • i++=> 評価してインクリメント;
  • ++i=>インクリメントしてから評価。

forループについて考えてみてください -i反復ごとにインクリメントされます。

于 2012-09-09T18:18:58.337 に答える
1

++after 変数は、ポストインクリメント操作を定義します。これは、行の他のすべての実行が完了した後、i増加することを意味します。変数を使用++iした場合、出力される前にインクリメントされます

于 2012-09-09T18:19:02.003 に答える