Python の for ... else ステートメント

Manav Narula 2021年8月10日
Python の for ... else ステートメント

プログラミングでは、さまざまなタイプのオブジェクトを反復処理するためにループを使用します。for ループは、その単純さから、最も広く使用されているループの 1つです。

Python には、for ループに関連する非常に興味深い機能があります。これにより、条件の実行と反復を組み合わせるために、else ステートメントを for ループとともに使用できます。else キーワードは通常、if-else ステートメントで使用され、if 条件が false を返したときにいくつかのコマンドを実行するために使用します。

ただし、Python で for ループを使用する場合はそうではありません。else ブロック内のステートメントは、ループがどの反復でも break ステートメントに遭遇しない場合、ループが終了したときに完了句に基づいて実行されます。break ステートメントは、ループから抜け出すために使用されます。break ステートメントが検出されない場合、else ブロックステートメントもループの後に実行されます。

continue ステートメントが検出されると、else ステートメントが実行されます。これは、continue ステートメントが次の反復を強制するためです。ループを壊すことはありません。

次のコードを参照してください。

for i in range(3):
    if i > 5:
        break
else:
    print("Else Statements")

for i in range(3):
    if i > 1:
        print("Break")
        break
else:
    print("Else Statements")

for i in range(3):
    if i > 1:
        continue
else:
    print("Else Statements after Continue")

出力:

Else Statements
Break
Else Statements after Continue

現在、for...else の使用は、else キーワードの使用について混乱を招く可能性があるため、多くの経験豊富なプログラマーに受け入れられていません。ただし、Python にはまだいくつかの便利なアプリケーションがあります。

たとえば、リスト内の要素を検索していて、それがリスト内に存在するかどうかを知りたい場合に使用できます。次のコードスニペットはこれを実装しています。

a = 15
lst = [10, 5, 6, 8, 9, 7, 5, 11]
for i in lst:
    if i == 15:
        print("Found")
        break
else:
    print("Not Found Loop Over")

出力:

Not Found Loop Over

else キーワードの使用は for ループに限定されず、Python でも while ループで使用できます。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python Statement