小编典典

打破嵌套循环

all

有没有比抛出异常更容易摆脱嵌套循环的方法?(在 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

阅读 114

收藏
2022-03-28

共1个答案

小编典典

至少有人建议过,但也拒绝过。我认为除了重复测试或重新组织代码之外,没有其他方法。有时有点烦人。

拒绝信息中,van
Rossum 先生提到 using return,这真的很明智,我个人需要记住这一点。:)

2022-03-28