| English | 意味 |
|---|---|
| while loop/waɪl luːp/ | whileループ |
| loop control variable/luːp kənˈtrəʊl ˈveərɪəbl/ | ループ制御変数 |
| infinite loop/ˈɪnfɪnət luːp/ | 無限ループ |
while(true) で反復
- while ループは、条件が
trueである限りその本体を繰り返し実行する。 while (i <= 5) { sum = sum + i; i++; }- 各反復の前にJavaが条件をチェックし、
falseであればループは終了する。 - 反復回数を事前に知らない場合に
whileを使用する。
各反復前のチェック
- 条件は本体を実行する前に毎回チェックされる。
- 最初のチェック時に
falseであれば、本体は一度も実行されない。 - 各反復後、次の反復前に条件が再チェックされる。
- この「チェックしてから実行(またはスキップ)」という順序は暗記に値する。
ループ制御変数
- ループ制御変数は停止への進行を駆動する。
- ループ前に初期化し、条件文で使用し、本体内で変更する。
iは1で始まり、条件はi <= 5をチェックし、i++が進める。- 最終的に条件を破る変化がない場合、ループは終了しない。
無限ループ
- 無限ループは条件が決して false にならないときに発生する。
i++を忘れる(または間違った変数を更新する)と、プログラムは永遠に止まらない。- 兆候:ループが停止条件に向かう進捗を示さないこと。
- 必ず各反復で制御変数が出口に向かうよう変更することを確保せよ。
while は各反復の前に条件をチェックするため、一度も実行されないことがある。 条件が既にfalseであれば本体は実行されない。また、本体内でループ制御変数を必ず変更し、条件が最終的にfalseになるようにしなければならない;更新を忘れる(例:i++ なし)ことが典型的な無限ループの原因となる。
1 から 5 の和:
int i = 1, sum = 0;while (i <= 5) { sum = sum + i; i++; }- 反復:
i=1sum=1,i=2sum=3,i=3sum=6,i=4sum=10,i=5sum=15; その後i=6が<= 5を満たさず → 停止。sumは15である。
while ループは条件がtrueである間に本体を繰り返し、各反復前にチェックされる(因此一度も実行されない可能性がある)。ループ制御変数は初期化され、テストされ、本体内で更新されなければならず、ループが進むようにしなければならない;更新を忘れると無限ループになる。
while を用いた1から5までの総和
各パスで i を sum に加え、i++ で終了条件へ近づけます。
while ループは条件をチェックします...
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
各パス开始前に条件がテストされるため、0回実行されることもあります。
int i=1, sum=0; while (i<=5){ sum+=i; i++; } 最終的な sum の値は何ですか?
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
1+2+3+4+5 = 15.
ループ本体内でループ制御変数を更新し忘れると、通常 ___ になります。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
進捗がない限り、条件は偽になることはありません。
while 条件が最初のチェックで偽の場合、本体は0回実行されます。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
各パス前にテストされるため、0回実行される可能性があります。
条件が決して偽にならず、永遠に繰り返されるループを ___ ループと言います(単語1つ)。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
無限ループは終了に向かう進捗を示しません。