Python 跳出多层循环
Python 本身没有 break n
和 goto
的语法,这也造成了 Python 难以跳出多层(特定层数)循环。下面是几个跳出多层(特定层数)循环的 tip。
自定义异常
class getoutofloop(Exception):
pass
try:
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
raise getoutofloop()
else:
print i, '----', j, '----', k
except getoutofloop:
pass
封装为函数 return
def test():
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
return
else:
print i, '—-', j, '—-', k
test()
for … else …
用法
上面的两种都是只能跳出多层而不能跳出特定层数的循环,接下来的这个正是为了跳出特定层数的循环。
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
break
else:
print i, '—-', j, '—-', k
else:
continue
break
else:
continue
break