PythonでforループよりもWhileループを使うべきシチュエーション

Pythonには、forループとwhileループの2つのループ文があります。forループは反復可能オブジェクトに対して要素を1つずつ処理するために使用され、whileループは条件がTrueである場合に繰り返されます。一般的に、forループがよく使われますが、いくつかのシナリオではwhileループを使用する方が適切です。

以下に、forループよりもwhileループを使うべきシチュエーションをいくつか紹介します。

条件が未知または変化する場合

whileループは、ループの条件が未知である場合、またはループを実行するために必要な条件がループ内で変化する場合に特に役立ちます。forループでは、反復可能オブジェクトの全ての要素を処理するために必要な回数が分かっている必要があります。

例えば、ユーザーからの入力が必要で、特定の入力がされるまでプログラムを実行する必要がある場合、whileループを使用すると便利です。以下は、"quit"と入力されるまでユーザーからの入力を受け付けるプログラムです。

user_input = ""
while user_input != "quit":
    user_input = input("Type 'quit' to exit: ")
    print("You typed: " + user_input)

ループを終了する条件が複数ある場合

forループは、反復可能オブジェクトの全ての要素を処理するために必要な回数だけループします。しかし、複数の条件を満たした場合にループを終了したい場合は、whileループを使用すると簡単に実現できます。

以下は、10回ループするか"quit"と入力されるまでプログラムを実行するプログラムです。

user_input = ""
count = 0
while user_input != "quit" and count < 10:
    user_input = input("Type 'quit' to exit or hit Enter to continue: ")
    print("You typed: " + user_input)
    count += 1

特定の条件で無限ループを回したい場合

whileループは、条件がTrueである限り繰り返されるため、無限ループを回すのに適しています。これは、プログラムを一定時間間隔で実行する必要がある場合や、特定の条件が満たされるまでプログラムを実行する必要がある場合に特に役立ちます。

以下は、無限ループで1秒ごとにメッセージを出力するプログラムです。

import time

while True:
    print("Hello!")
    time.sleep(1)

反復可能オブジェクトがない場合

forループは反復可能オブジェクトに対してのみ使用できますが、whileループは反復可能オブジェクトが必要なく、単に条件がTrueである場合にループを実行します。

以下は、5回ループするための条件が満たされるまでループするプログラムです。

count = 0
while count < 5:
    if some_condition:
        count += 1
    # 何か処理を行う

以上が、forループよりもwhileループを使うべきシチュエーションの例です。条件が未知である場合や、ループを終了する条件が複数ある場合、無限ループを回す必要がある場合、反復可能オブジェクトがない場合にはwhileループを使用すると便利です。これらのプログラムはPythonの基本的な文法で実装することができます。Pythonの基礎学習には下記のようなサイトの利用が有効です。

click.linksynergy.com

click.linksynergy.com