2016-10-08 3 views
-2

これはなぜ答えが10で、8ではないのですか?Java do Whileループがわかりました

int count = 0; 
do{ 
    System.out.println("welcome to java"); 

}while (count++ < 9); 
System.out.println(count); 
+1

1を追加する前に 'count <9'をチェックします。だから、その8はthats見て、1つを追加し、その9を見て、1つを追加し、ループを壊した。したがって、1 –

+0

の詳細については、 '++'演算子を見てください。 –

+0

ひどいタイトル。 Stack Overflowは掲示板ではありません。先史時代のあなたのタイトルを編集して問題を要約してください。 –

答えて

3

まず、条件が満たされなくなるとループが終了します。第二に

count++countの値を取得し、1による評価にのみその増分count後にそれを使用することを意味します。

換言すれば、7については、7 < 9が満たされ、count8にインクリメントされる。 の場合8の場合8 < 9が満たされ、count9にインクリメントされます。 9の場合9 < 9が満たされず、ループが終了しますが、その前にはcountがまだ10に増分されています。

したがって、ループを終了後、count10です。

0

最後のコメントに記載されているように、何かを実行するように求められ、最初の実行サイクルの後に増分するループがあります。覚えておくべき重要なことは、それがインクリメントする前に行い、while条件が満たされているかどうかをチェックすることです。これは9ように8からコードを調整することによって変更することができる。

int count = 0; 
    do{ 
     System.out.println("welcome to java"); 
    }while (count++ < 8); 
    System.out.println(count); 
  1. この第一、それが0である、未満 8であるかどうかのカウントを見て)(printlnをし、インクリメント続けてください。
  2. これはprintln()を実行した後、カウントが8より小さく、1であり、インクリメントして続行するかどうかを調べます。
  3. これはprintln()を実行し、カウントが8より小さいかどうかを調べ、2であればインクリメントして続行します。
  4. これはprintln()を実行し、カウントが8より小さいかどうかを調べ、3であればインクリメントして続行します。
  5. これはprintln()を実行し、カウントが8より小さいかどうかを調べ、4であればインクリメントして続行します。
  6. これはprintln()を実行し、カウントが8より小さいかどうかを調べ、5であればインクリメントして続行します。
  7. これはprintln()を実行し、カウントが8より小さく、6であり、インクリメントして続行するかどうかを調べます。
  8. これはprintln()を呼び出し、カウントが8より小さいかどうかを調べ、7であればインクリメントして続行します。
  9. 最後に、println()はcountを調べ、それが8より小さいか、8であるか、そして終了かを調べます。
1

あなたはここでこれらの2つの基本的な概念を理解していることを確認します: -

1)doループ内のコードが最初に実行されます式)後置インクリメントを を評価され前カウント ++)とプリフィックスインクリメント(++ カウント)は、式の結果を変更する可能性があります。Postfix増分(カウント ++)は、カウントの値を1つだけだけ増加させますが、カウントを式の後に使用します。あなたの代わりにあなたのコード内で前置インクリメント(++ )を使用する場合

ので、の値はすぐにそれが式の中で使用されたときに1つずつ増加します。

から++count < 8に式を変更すると、代わりにdoループが8回実行されます。

乾杯。

関連する問題