php break 后面是可以带数量,表示跳出的层数,python如何跳出多层循环呢?

以 python3 代码为例,有以下几种方法。

打包函数,使用 return

def sai():
for i in range(10):
for j in range(10):
if i + j > 13:
return i, j

print(sai())

将循环逻辑打包成一个单独的函数,满足条件直接 return

变量标记

def flag():
btn = False
for i in range(10):
for j in range(10):
if i + j > 13:
btn = True
break
if btn:
break
print(i, j)


flag()

使用 btn 标记,btn == True 则继续跳出。

for/else

def loop():
for i in range(10):
for j in range(10):
if i + j > 13:
break
else:
continue
break
print(i, j)


loop()

raise Exception

class Break(Exception):
pass


try:
for i in range(10):
for j in range(10):
if i + j > 13:
raise Break
except Break:
print(i, j)

总感觉这个方法不太优雅。

以上几种方法就是针对多层循环的跳出,我个人倾向于抽象个函数,当然了,习惯哪种如你所想。

如果有其他好的方式,欢迎分享。