Pythonでは、break
とcontinue
文を使用してループのフローを変更することができます。break
はループ全体を終了し、continue
は現在の反復をスキップして次の反復に進みます。
しかし、複数のネストされたループから一度に抜け出すにはどうすればよいでしょうか?その答えは、組み込みのStopIteration
例外を使用した「シミュレートされたgoto文」です。
以下にその例を示します。
try:
for outer in range(100):
for inner in range(100):
if break_early():
raise StopIteration
except StopIteration:
pass
このコードでは、break_early()
関数がTrue
を返すと、StopIteration
例外が発生し、try/except
ブロックがそれを捕捉してループから抜け出します。
この方法を使用すれば、関数にリファクタリングすることなく、複数のネストされたループから抜け出すことが可能です。
以上がPythonで複数のループから抜け出す方法についての説明です。このテクニックを覚えておくと、複雑なループ構造を扱う際に役立つでしょう。