Pythonのwhileによる繰り返し処理の使い方と条件を満たすまでのループ処理をわかりやすく解説

スポンサーリンク
スポンサーリンク

whileの概要

条件を満たす間ループ処理を行う Python予約語

while

概要 while は、指定した条件が True である間、繰り返し処理を実行するためのループ制御文です。条件が False になるとループは終了します。

わかりやすく説明 while は「○○の間、処理を繰り返す」という指示をするものです。例えば、「カウントが10未満の間、カウントを増やし続ける」といった処理に使われます。

  • while は、条件が True の間、処理を繰り返します。
  • 条件が False になるとループを終了します。
  • 無限ループを防ぐため、ループ内で条件を変化させる処理を入れる必要があります。

whileの基本的な使い方

以下の例では、カウント変数が10未満の間、繰り返し処理を実行しています。

# while ループの基本
count = 0

while count < 10:
    print(count)
    count += 1  # カウントを増やす
  • count < 10 の間、ループが実行される。
  • ループごとに count += 1 でカウントを増加。
  • count が 10 になると条件が False になり、ループ終了。

ユーザー入力を受け取るwhileループ

ユーザーが特定の入力をするまでループを続ける例です。

# 正しいパスワードが入力されるまでループ
password = ""

while password != "python123":
    password = input("パスワードを入力してください: ")

print("ログイン成功!")
  • ユーザーが "python123" を入力するまで、ループを繰り返す。
  • 正しいパスワードが入力されるとループが終了し、「ログイン成功!」が表示される。

whileとbreakを組み合わせる

break を使うと、条件に関係なくループを途中で終了できます。

# break を使ったループの終了
count = 0

while True:
    print(count)
    count += 1
    if count == 5:
        break  # カウントが5になったらループ終了
  • while True で無限ループを作成。
  • count == 5 になったら break でループを終了。

whileとcontinueを組み合わせる

continue を使うと、ループ内の処理をスキップし、次の繰り返しに進めます。

# 偶数のときだけ処理をスキップ
count = 0

while count < 10:
    count += 1
    if count % 2 == 0:
        continue  # 偶数のときはスキップ
    print(count)
  • カウントが偶数のときは continueprint() をスキップ。
  • 奇数のみが出力される。

while-elseを使ったループ終了処理

whileelse を組み合わせると、ループが正常終了したときに特定の処理を実行できます。

# while-else の使い方
count = 0

while count < 5:
    print(count)
    count += 1
else:
    print("ループが正常終了しました")
  • ループが条件通りに終了すると else の処理が実行される。
  • break でループが終了すると else は実行されない。

無限ループの作成(意図的なループ)

while True を使うと、条件なしの無限ループを作成できます。

# 無限ループの例
while True:
    command = input("コマンドを入力 (exit で終了): ")
    if command == "exit":
        break  # "exit" が入力されたらループ終了
    print(f"入力されたコマンド: {command}")
  • ユーザーが exit を入力するまでループを続ける。
  • それ以外の入力は、そのまま出力される。

whileの注意点

  • 無限ループに注意: ループ内で条件を変化させないと、無限に繰り返し続ける。
  • break を適切に使う: 特定の条件でループを強制終了する場合に便利。
  • continue の使い方に注意: 過剰に使うと、意図しないスキップが発生する可能性がある。

whileのよくある質問

Q: while と for の違いは?
A: while は条件が True の間繰り返し、for は決められた回数やシーケンスの要素を繰り返します。
Q: 無限ループになってしまった場合の対処方法は?
A: Ctrl + C を押すとプログラムを強制終了できます。
Q: while の条件にリストを使うとどうなる?
A: リストが空でない限り True と評価されるため、空リストになるまでループが続く。

まとめ

while は、条件を満たしている間ループを続けるための制御構造です。

  • 条件が True の間繰り返し処理を実行する。
  • break を使うと、任意のタイミングでループを終了できる。
  • while-else を使うと、ループが正常終了した際の処理を追加できる。

適切に while を活用し、柔軟なループ処理を実現しましょう。