Pythonのwhile文:条件が満たされている間ループを繰り返す方法

Pythonで繰り返し処理を行う際、for 文は「リストの要素数」や「指定した回数」だけ繰り返す場合に適しています。

対して、回数は決まっていないものの、「ある特定の条件が満たされている間はずっと処理を続けたい」という場合があります。例えば、「ユーザーが終了ボタンを押すまで待機する」や「バッテリー残量がなくなるまで稼働する」といったケースです。

このような「状態」に基づく繰り返し処理には、whileを使用します。

この記事では、while 文の基本的な書き方と、使用する際の注意点について解説します。

目次

while 文の基本構文

while 文は、直後に記述した条件式が True(真)である限り、ブロック内の処理を繰り返し実行し続けます。

構文:

while 条件式:
    # 条件式が True の間、繰り返し実行される処理
    # (インデントされたブロック)

処理の流れは以下の通りです。

  1. 条件式を評価する。
  2. True ならブロック内の処理を実行する。
  3. 再び条件式を評価する。
  4. True なら再度実行、False ならループを終了して次の行へ進む。

具体的な使用例

例として、デバイスのバッテリー残量が一定値を下回るまで稼働し続けるプログラムを作成します。

# バッテリー残量 (初期値 100%)
current_battery = 100

# バッテリーが 20% より多い間はループを継続する
while current_battery > 20:
    print(f"バッテリー残量: {current_battery}% - 正常稼働中")
    
    # 処理ごとにバッテリーを 25% 消費する
    current_battery -= 25

# ループ終了後の処理
print(f"バッテリー残量: {current_battery}% - 低電力モードに移行します。")

実行結果:

バッテリー残量: 100% - 正常稼働中
バッテリー残量: 75% - 正常稼働中
バッテリー残量: 50% - 正常稼働中
バッテリー残量: 25% - 正常稼働中
バッテリー残量: 0% - 低電力モードに移行します。

この例では、current_battery25 の時点までは条件(> 20)を満たすためループが実行されます。次の処理で 0 になった時点で条件が False となり、ループを抜けて最後のメッセージが表示されます。

重要な注意点:無限ループ

while 文を使用する際、最も注意しなければならないのが**「無限ループ」**です。

条件式が常に True のままで、いつまで経っても False にならない場合、プログラムは永遠にそのループから抜け出せなくなります(フリーズやクラッシュの原因となります)。

無限ループの例(実行注意):

count = 10
# count は減少しないため、永遠に 0 より大きいままとなる
while count > 0:
    print("終わらない処理")
    # ここで count を減らす処理を書き忘れている

while 文を書く際は、**「ループの中で、いつか必ず条件が False に変化する処理(変数の更新など)」**が含まれていることを必ず確認してください。

まとめ

  • while 条件式: の形式で記述します。
  • 条件が True である間、処理を繰り返します。
  • 処理回数が不明で、特定の「状態」を監視してループさせたい場合に適しています。
  • 条件が永遠に False にならない「無限ループ」に陥らないよう、ループ内で変数を適切に更新する必要があります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次