プログラミングでは、同じ処理を何度も繰り返したい場面がよくあります。例えば、リストの項目を一つずつ処理したり、特定の条件が満たされるまでユーザーからの入力を待ち受けたりする場合です。
この記事では、Pythonにおける繰り返し処理の基本である**while
ループ**について、その仕組みと使い方を分かりやすく解説します。
while
ループの基本構造
while
ループは、指定した条件式がTrue
である間、その内部のコードブロックを繰り返し実行し続けます。
基本的な構造は以下の通りです。
while 条件式:
# 条件式がTrueの間、実行され続ける処理
if
文と似ていますが、if
文が一度だけ処理を実行するのに対し、while
文は条件がFalse
になるまで何度も処理を繰り返す点が大きな違いです。
実際にコードを見てみましょう。これは、カウンターが3になるまで数字を表示し続ける簡単なプログラムです。
# カウンター用の変数を初期化
counter = 0
# counterが3より小さい間、ループを続ける
while counter < 3:
print(f"現在のカウント: {counter}")
# counterの値を1増やす(これを忘れると無限ループになる)
counter = counter + 1
print("ループが終了しました。")
このコードを実行すると、以下のように出力されます。
現在のカウント: 0
現在のカウント: 1
現在のカウント: 2
ループが終了しました。
この例では、counter < 3
という条件がTrue
の間はループ内の処理(print
文とcounter
を1増やす処理)が実行されます。counter
が3になると条件がFalse
になり、ループは終了します。
特定の入力があるまで繰り返す処理
while
ループが特に役立つのは、繰り返しの回数が事前に決まっていない場合です。例えば、ユーザーが特定のキーワードを入力するまで、処理を続けたいケースです。
次のコードは、ユーザーが合言葉である「opensesame
」を入力するまで、入力を求め続けるプログラムです。
# ユーザーの入力を保存する変数を初期化
user_input = ""
# 入力が "opensesame" でない限りループを続ける
while user_input != "opensesame":
print("合言葉を入力してください:")
user_input = input() # ユーザーからの入力を受け取る
print("扉が開きました。")
このプログラムでは、ユーザーが「opensesame
」と入力するまで、while
ループは何度でも「合言葉を入力してください:」と表示し続けます。正しい合言葉が入力されると、user_input != "opensesame"
という条件がFalse
になり、ループを抜けて「扉が開きました。」と表示されます。
注意点:無限ループ
while
ループを使う際に最も注意すべきなのが無限ループです。これは、ループの条件式が永遠にFalse
にならず、プログラムが終了しなくなってしまう状態のことです。
先のカウンターの例で、counter = counter + 1
という行を書き忘れると、counter
の値は永遠に0のままです。その結果、counter < 3
という条件は常にTrue
となり、プログラムは「現在のカウント: 0」と無限に表示し続けてしまいます。
ループを作る際は、必ずどこかのタイミングで条件式がFalse
になるように設計することが非常に重要です。
まとめ
今回は、Pythonのwhile
ループについて解説しました。
while
ループは、指定した条件がTrue
の間、処理を繰り返します。- 決まった回数だけでなく、特定の条件を満たすまで処理を続けたい場合に特に便利です。
- ループの条件が
False
になるような処理を忘れると無限ループに陥るため注意が必要です。
while
ループは、プログラムをより動的で柔軟にするための強力なツールです。ぜひ色々な条件で試してみてください。