採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

L04 ch02 — while ループ

テクノロジ系 / L04 loop — ループ

L04 ch02 — while ループ

「条件が True の間だけ繰り返す」を扱う

ゴール

  • while 条件: で繰り返しを書ける
  • ループ終了条件を自分で設計できる
  • 無限ループと break / continue を理解する

for と while の使い分け

ループ種別向いている場面
for回数が決まっている1〜10 を順に処理
while回数が決まっていないユーザー入力待ち / 条件達成まで

→ 「終わる条件」がデータ側にあるなら while、回数が事前に分かるなら for

最小例

# main.py
n = 0
while n < 3:
    print(n)
    n += 1
# → 0
# → 1
# → 2

ポイント: ループ内で n を必ず変化させる。忘れると無限ループ。

while True + break

「条件が複雑」「途中で抜けたい」場合は while True + break が定番。

total = 0
while True:
    total += 1
    if total >= 10:
        break
print(total)  # → 10

continue でスキップ

i = 0
while i < 5:
    i += 1
    if i % 2 == 0:
        continue   # 偶数はスキップ
    print(i)
# → 1
# → 3
# → 5

continueその回をスキップして次の判定に進むbreak と違いループは続く。

無限ループに注意

# ❌ 終わらない (n を増やしていない)
n = 0
while n < 3:
    print(n)
# → 0 を無限に出し続ける → Ctrl+C で停止

while を書いたら 「どこで条件が False になるか」 を必ず確認する。

累積パターン

# 1 + 2 + ... + 100 を計算
total = 0
i = 1
while i <= 100:
    total += i
    i += 1
print(total)  # → 5050

for i in range(1, 101) でも同じことができるが、条件を細かく制御したい時に while が活きる。

drill

drill/while で累積和を計算する関数を完成させる

拡張課題

  1. else 節: while にも else が付けられる。break で抜けなかった場合のみ実行される
   n = 0
   while n < 3:
       n += 1
   else:
       print("正常終了")   # break しなかったので実行される
   
  1. 入力ループ: input() で "quit" が来るまで受け取り続ける
   while True:
       s = input("> ")
       if s == "quit":
           break
       print(f"echo: {s}")
   
  1. 二重ループ: 外側 while + 内側 for で 2 次元処理

- break一番内側のループしか抜けない ことに注意

よくある詰まり

症状原因対処
無限に出力される / 止まらないループ内で変数を変化させていないn += 1 等を入れる / Ctrl+C
1 回も実行されない初期条件が最初から False初期値を見直す
break が効かない内側のループしか抜けていないフラグ変数 or 関数化して return
i += 1 の位置で結果が変わるインクリメントが先 / 後で意味が違う累積するなら処理→更新の順

次に学ぶ領域

領域続けて読む
for ループ (回数固定)loop/ch01-for
条件分岐 (while と組み合わせる)03-conditional/ch01-if
関数化 (累積処理を再利用)function/ch01-basic
力試ししたい方は クイズ形式の演習(任意) もあります。読むだけでも十分です。