经网上学习,Python跳出多层循环的方法大致有一下三种
1、(比较难理解的)for … else … 用法
代码语言:javascript复制for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
break
#注意,这里的break使得3行后的continue不得执行,使得程序无法直接跳转到第二个for,使得程序执行第二个break#
else:
'Do sth.'
else: continue
#注意,这里的continue是给第二层循环用的,原因见下文#
break
else: continue
break
“else在 while和for 正常循环完成之后执行,和直接写在 while和for 之后没有区别,但是如果用break结束循环之后else就不会执行了。” 再利用continue使得break不被执行而直接跳到第一行,真是太具技巧性了!
2、封装为函数并使用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: 'Do sth.' test()
顺便这里展示了def指令是如何使用的
3、使用flag
代码语言:javascript复制for x in range(0,3,1):
if flag == 1:
break
for y in range(0,3,1):
'Do sth.'
if 1==1
flag=1
这个方法涉及外层多次无用的if判断