Python中一次性退出多层循环

发布时间 2023-12-08 11:12:16作者: 厚礼蝎

场景

python中,有时候出现了多层for循环嵌套判断,当判断通过就希望能直接退出所有循环

但是,Python中并没有提供直接退出所有嵌套循环的语句或内置函数。

解决思路

可以通过抛出一个自定义异常来达到类似的效果。在最内层的循环中,如果满足条件,就抛出一个自定义异常,然后在最外层捕获这个异常并处理。

代码部分

# 用来退出所有循环
class ExitAllLoops(Exception): pass


try:
    for i in range(10):
        for j in range(10):
            for n in range(10):
                for m in range(10):
                    print(i, j, n, m, sep="=")
                    if m == 2:
                        raise ExitAllLoops()
except ExitAllLoops:
    pass