繰り返し(ループ)
まず結論
IPAの擬似コードの繰り返しには「i を A から B まで繰り返す」(カウンタ型)と「条件の間, 繰り返す」(while型)の2種類があります。ループ変数の変化をトレース表で追うことが科目Bの基本です。
2つの繰り返し構文
カウンタ型(for相当)
i を 1 から n まで繰り返す
処理
繰り返し終わり
iが1,2,...,nと1ずつ増える
合計n回実行される
合計n回実行される
条件型(while相当)
条件の間, 繰り返す
処理
繰り返し終わり
条件が真の間ループ
条件が偽になったら終了
条件が偽になったら終了
よく使うバリエーション
i を n から 1 まで繰り返す → 逆順(n,n-1,...,1)left が right 以下の間, 繰り返す → 範囲縮小ループ例1:カウンタ型 — 1からnまでの合計
n ← 5
goukei ← 0
i を 1 から n まで繰り返す
goukei ← goukei + i
繰り返し終わり
goukei を表示する // → 15
| i | goukei(実行後) |
|---|---|
| (開始前) | 0 |
| 1 | 0+1=1 |
| 2 | 1+2=3 |
| 3 | 3+3=6 |
| 4 | 6+4=10 |
| 5 | 10+5=15 |
例2:条件型 — 割り算で桁数を数える
// 正の整数nの桁数を数える
n ← 1234
count ← 0
n > 0 の間, 繰り返す
n ← n ÷ 10 // 整数除算
count ← count + 1
繰り返し終わり
count を表示する // → 4(桁数)
| n(ループ前) | n>0? | n(÷10後) | count |
|---|---|---|---|
| 1234 | 真 | 123 | 1 |
| 123 | 真 | 12 | 2 |
| 12 | 真 | 1 | 3 |
| 1 | 真 | 0 | 4 |
| 0 | 偽→終了 | — | 4 |
無限ループに注意:条件型ループはループ内で条件を変化させないと永遠に終わらない。試験でも「このコードはいつ終わるか」を問われる場合があります。
二重ループの例
// 九九の1の段〜3の段を表示
i を 1 から 3 まで繰り返す // 外ループ:段
j を 1 から 9 まで繰り返す // 内ループ:1〜9
i × j を表示する
繰り返し終わり
繰り返し終わり
// 合計 3×9=27回実行 → O(n²)の構造
二重ループ = O(n²):外ループn回×内ループn回で合計n²回の処理。計算量O(n²)になる典型パターン。
🎯 試験での出方
- ループを実行した結果の値を問う問題(トレース表を書いて解く)
- 「ループが何回実行されるか」→ カウンタ型なら終了値-開始値+1回
- 二重ループの計算量 → O(n²)
- 「□に入るループ条件」を選ぶ穴埋め問題
⚠️ よくある間違い
- 「i を 1 から n まで」→ ✓ 1,2,...,nのn回。n-1回ではない
- 「繰り返し終わりの数を間違える」→ ✗ 「繰り返す」と「繰り返し終わり」は必ず対になる
- 「条件型ループの終了タイミング」→ 条件を毎回チェック。最初から偽なら1回も実行されない
✍️ 確認クイズ
Q1. 「i を 3 から 7 まで繰り返す」のとき、ループは何回実行されるか。
✅ 正解は②。i=3,4,5,6,7の5回実行。計算式は「終了値-開始値+1」= 7-3+1 = 5回。
Q2. goukei←0として「i を 1 から 5 まで繰り返す / goukei ← goukei + i × i」を実行したときのgoukeiの値はどれか。
✅ 正解は③。1²+2²+3²+4²+5² = 1+4+9+16+25 = 55。i×iは2乗なので間違えやすい。
Q3. 「n > 0 の間, 繰り返す / n ← n - 3」で n=10から開始したとき、ループは何回実行されるか。
✅ 正解は③。n=10(真)→7(真)→4(真)→1(真)→実行後n=-2→-2>0は偽→終了。実行回数は4回(n=10,7,4,1のとき)。
Q4. 「i を 1 から n まで / j を 1 から n まで / 処理」の二重ループは何回実行されるか(n=4の場合)。
✅ 正解は③。外ループi=1〜4(4回)×内ループj=1〜4(4回)=合計4×4=16回。一般にn×n=n²回。この二重ループ構造がO(n²)の典型パターンです。外ループが1回実行されるたびに内ループがn回丸ごと実行されることを意識してトレースしましょう。
Q5. 次の擬似コードの実行後のxの値はどれか。「x←1 / i を 1 から 4 まで繰り返す / x ← x × 2 / 繰り返し終わり」
✅ 正解は②。x←1から始めてx←x×2を4回繰り返す:i=1:x=1×2=2、i=2:x=2×2=4、i=3:x=4×2=8、i=4:x=8×2=16。2の4乗=16。このように「×2を繰り返す」は2のn乗を計算するパターンです。
Sponsor Link