P-1.5 Python跳出多层循环的方

2023-01-31 02:01:52

经网上学习python跳出多层循环的方法大致有一下三种

1、(比较难理解的)for … else … 用法

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

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判断

相关文章