今回やること
while は、回数ではなく条件が True の間だけ処理を繰り返します。止めるには、ループ内で条件に使う値を更新するか、終了条件で break を実行します。
while は、条件が正しい間だけ処理を繰り返す文です。
while文では「いつ止まるか」を必ず考えることが重要です。
今回は、カウント、入力の繰り返し、無限ループの防ぎ方を練習します。
カウントする
count = 1
while count <= 5:
print(count)
count = count + 1
count = count + 1 がないと、条件がずっと変わらず止まりません。
| 確認する順番 | 1回目 | 2回目 | 最後 |
|---|---|---|---|
count | 1 | 2 | 5 |
count <= 5 | True | True | True |
| 更新後 | 2 | 3 | 6 |
更新後に条件が False になるため、次の判定で終了します。条件式の読み方は Pythonの比較演算子と論理演算子 で確認できます。
入力を繰り返す
text = ""
while text != "exit":
text = input("文字を入力してください: ")
print(text)
exit と入力するとループが終わります。
breakで止める
while True:
text = input("終了するにはq: ")
if text == "q":
break
print(text)
while True は無限ループです。break で止める条件を必ず書きます。
終了条件を間違えて止まらなくなったら、ターミナルで Ctrl + C を押します。回数が最初から決まっている処理には、Pythonのrangeとは で扱う for と range の方が向いています。if と for の前提は Python入門 #3 で復習できます。
よくあるエラー
| 問題 | 原因 | 修正 |
|---|---|---|
| 止まらない | 条件が変わらない | カウントを更新する |
| 1回も動かない | 最初から条件が False | 初期値を確認する |
| 読みにくい | ループ内が長い | 関数に分ける |
練習
- 1から10まで表示する
- 10から1までカウントダウンする
qが入力されるまで繰り返す- パスワードが合うまで入力を求める
次のステップ
回数が決まっている繰り返しは Pythonのrange が向いています。