1. ホーム
  2. パイソン

[解決済み】入れ子ループからの脱却【重複あり

2022-03-25 05:07:38

質問

ネストされたループから抜け出すのに例外を投げるより簡単な方法はありますか?(Perlでは、各ループにラベルを付けて、少なくとも外側のループを継続することができます)。

for x in range(10):
    for y in range(10):
        print x*y
        if x*y > 50:
            "break both loops"

すなわち、より素敵な方法はないのか。

class BreakIt(Exception): pass

try:
    for x in range(10):
        for y in range(10):
            print x*y
            if x*y > 50:
                raise BreakIt
except BreakIt:
    pass

解決方法は?

少なくとも提案されていることですが、他にも 却下 . テストを繰り返すか、コードを再整理する以外、他の方法はないと思うのですが。ちょっと困ることもあります。

での 拒否メッセージ を使用することに言及しています。 return これは本当に賢明で、個人的に覚えておかなければならないことです。)