05 繰り返し(while文)
1. 繰り返し処理とは
繰り返し処理とは、ある条件が成り立つ間、同じ処理を何度も実行する仕組みです。
while文は「条件を最初に確認してから繰り返す」前判定型の繰り返し構文です。
2. while文の基本構造
while ( 条件 )
処理
endwhile
- 条件が真である間、処理を繰り返します
- 条件が最初から偽の場合、処理は一度も実行されません
3. 基本例とトレース
整数型: i ← 1
while ( i が 5 以下 )
i を出力
i ← i + 1
endwhile
処理の流れを1ステップずつ追ってみましょう(トレース):
4. 「以下」と「未満」の違い
条件の書き方1つで出力が変わります。必ず確認する習慣をつけましょう。
5. カウンター変数の典型パターン
while文では以下の4ステップが基本形です。
④ カウンタ更新を忘れると無限ループになります!
条件が永遠に真のままになり、プログラムが止まらなくなります。
6. do〜while文(後判定型)
do〜while文は処理を先に実行してから条件を確認します。必ず1回は実行されます。
do
処理
while ( 条件 )
整数型: x ← 0
do
x ← x + 1
while ( x が 3 未満 )
x を出力 // 出力: 3
7. break文(ループの途中終了)
条件に関係なく、ループを途中で抜けたいときに使います。
IPAの疑似言語では break というキーワードではなく、
「○○の行から始まる繰返し処理を終了する」という日本語で表現されます。
この資料では理解しやすさのため break と記述していますが、試験本番では日本語表記で出題されます。
整数型: x ← 1
while ( x が 10 以下 )
if ( x が 5 と等しい )
break // x=5 になった時点でループを抜ける
endif
x を出力
x ← x + 1
endwhile
// 出力: 1 2 3 4
breakの動作:break に到達した時点でループを即座に終了し、endwhile の次の処理へ進みます。
x=5 のとき出力より先に break するため、5は出力されません。
8. 理解度チェック問題
問題05-1
次のコードを実行した結果として正しいものを選びなさい。
整数型: i ← 1
while ( i が 5 以下 )
i を出力
i ← i + 1
endwhile
解説を表示
正解:イ
i=1〜5 のとき条件が真なので出力。i=6 になると「6 が 5 以下」が偽になりループ終了。
問題05-2
次のコードを実行した結果として正しいものを選びなさい。
整数型: i ← 1
while ( i が 5 未満 )
i を出力
i ← i + 1
endwhile
解説を表示
正解:ウ
「未満」は5を含まない(i < 5)。i=5 になると偽になるため、5は出力されません。
問題05-3
次のコードを実行した結果として正しいものを選びなさい。
整数型: x ← 1
while ( x が 5 未満 )
x ← x - 1
endwhile
解説を表示
正解:エ
x ← x - 1 で x はどんどん小さくなります。「x が 5 未満」は常に真のまま → 無限ループ。
ループ変数は条件に近づく方向に更新する必要があります。
問題05-4
次のコードを実行した結果として正しいものを選びなさい。
整数型: i ← 1
while ( i が 10 以下 )
if ( i が 4 と等しい )
break
endif
i を出力
i ← i + 1
endwhile
解説を表示
正解:ア
i=4 のとき break が先に実行されるため、4は出力されません。1, 2, 3 のみ出力されます。
問題05-5
次のコードを実行したとき x の最終値として正しいものを選びなさい。
整数型: x ← 0
do
x ← x + 1
while ( x が 3 未満 )
解説を表示
正解:ウ
x=0→1(条件:1<3 真)→2(条件:2<3 真)→3(条件:3<3 偽)ループ終了。x の最終値は 3。
do〜while は処理を先に実行するため、x=0 でも必ず1回は x ← x+1 が実行されます。