Pythonで「同じ処理を何度も繰り返したい」とき、あなたはどうしますか?
例えば、こんな場面で困ったことはありませんか?
- 「0から10まで順番に表示したい」
- 「ユーザーが『終了』と入力するまで質問を続けたい」
- 「パスワードが正しく入力されるまで何度も聞き直したい」
こんなとき活躍するのがwhile文です。
while文は「条件が成り立つ間、ずっと同じ処理を繰り返す」ことができる便利な機能です。
この記事では、Python初心者の方にもわかりやすく、while文の基本から実践的な使い方まで詳しく解説します。
Pythonのwhile文とは?基本構文を理解しよう

while文の基本的な仕組み
while文は、以下のような構文で書きます:
while 条件式:
実行したい処理
動作の流れ:
- 条件式をチェックする
- 条件式がTrueなら、中の処理を実行する
- 処理が終わったら、また条件式をチェックする
- 条件式がFalseになるまで、2と3を繰り返す
簡単な例で理解しよう
1から5まで順番に表示するプログラムを作ってみましょう:
i = 1
while i <= 5:
print(i)
i += 1
実行結果:
1
2
3
4
5
このプログラムの動作説明:
i = 1
で数字を1からスタートi <= 5
が成り立つかチェック(1は5以下なのでTrue)print(i)
で数字を表示(1が表示される)i += 1
で数字を1増やす(iが2になる)- また
i <= 5
をチェック(2は5以下なのでTrue) - この流れを、iが6になるまで続ける
無限ループとbreak文の使い方

無限ループとは?
条件式が常にTrueになる場合、プログラムは永遠に止まりません。
これを「無限ループ」と呼びます:
while True:
print("これは止まりません!")
break文でループから抜け出す
無限ループを安全に使うには、break
文を使います:
while True:
user_input = input("続けますか?(y/n): ")
if user_input == 'n':
print("プログラムを終了します")
break
print("続行します")
このプログラムの動作:
- ユーザーに「続けますか?」と質問
- ユーザーが「n」と入力したら、break文でループを抜ける
- それ以外の入力なら、「続行します」と表示して再び質問
なぜ無限ループを使うの?
「いつ終わるかわからない処理」に便利だからです。例えば:
- ユーザーが正しいパスワードを入力するまで
- ファイルの読み込みが完了するまで
- ゲームでプレイヤーが「終了」を選ぶまで
while True
は強力な機能ですが、条件式が必ずfalseになるようにしたり、break
で抜け道を作ることが重要です。
while文の使用例

例1:ユーザーが「終了」と入力するまで繰り返す
while True:
command = input("何か入力してください('exit'で終了): ")
if command == "exit":
print("プログラムを終了します")
break
print("あなたの入力:", command)
使用場面: チャットボットやコマンドライン操作など
例2:カウントダウン
countdown = 5
while countdown > 0:
print(f"あと{countdown}秒...")
countdown -= 1
print("時間です!")
実行結果:
あと5秒...
あと4秒...
あと3秒...
あと2秒...
あと1秒...
時間です!
例3:正しいパスワードが入力されるまで繰り返す
correct_password = "python123"
password = ""
while password != correct_password:
password = input("パスワードを入力してください: ")
if password != correct_password:
print("パスワードが間違っています。もう一度入力してください。")
print("ログイン成功!")
例4:数字を蓄積していく
total = 0
count = 1
while count <= 10:
total += count
count += 1
print(f"1から10までの合計: {total}")
実行結果:
1から10までの合計: 55
while文は、ユーザー入力の処理や条件付きの繰り返しなど、「いつ終わるかわからない処理」に最適です。
while文でよくあるエラーと対策

よくある間違い1:無限ループ
間違った例:
i = 1
while i <= 5:
print(i)
# i += 1 を忘れている!
問題: i
が更新されないため、永遠に1が表示され続けます。
正しい書き方:
i = 1
while i <= 5:
print(i)
i += 1 # 忘れずに更新!
よくある間違い2:条件が最初からFalse
間違った例:
i = 10
while i < 5:
print(i)
i += 1
問題: 最初からi = 10
でi < 5
がFalseなので、一度も実行されません。
よくある間違い3:比較演算子を間違える
間違った例:
i = 1
while i >= 5: # <= のつもりが >= になっている
print(i)
i += 1
正しい書き方:
i = 1
while i <= 5: # 5以下の間繰り返す
print(i)
i += 1
デバッグのコツ
while文で問題が起きたときは、以下をチェックしてください:
- 条件式は正しいか?
- ループ内で条件に関わる変数を更新しているか?
- 初期値は適切か?
while文では、条件の変化とループの終了条件を意識することが最も重要です。
for文とwhile文の使い分け

for文が向いている場面
- 回数が決まっている繰り返し
- リストや文字列の要素を順番に処理
# リストの各要素を表示
fruits = ["りんご", "バナナ", "みかん"]
for fruit in fruits:
print(fruit)
while文が向いている場面
- 条件によって繰り返し回数が変わる
- ユーザーの入力待ち
- 特定の条件が満たされるまでの処理
# ユーザーが正解するまで質問を続ける
answer = ""
while answer != "python":
answer = input("好きなプログラミング言語は?: ")
まとめ
Pythonのwhile
文は、条件に応じた柔軟な繰り返し処理を書くときに欠かせない機能です。
基本構文:
while 条件式:
で条件が成り立つ間繰り返す- 条件に関わる変数の更新を忘れない
注意点:
- 無限ループに気をつける
- 条件式と初期値の設定を確認する
- デバッグ時は条件の変化を追跡する
コメント