美文网首页
python 如何在多层循环中使用break/continue

python 如何在多层循环中使用break/continue

作者: Python集中营 | 来源:发表于2022-05-22 20:10 被阅读0次

    关于break/continue这两个关键字在平常的使用过程中一直比较迷糊。好不容易理解了吧,过段时间不使用好像忘记了什么。这个问题也是很多初学者比较容易提及的问题。

    【阅读全文】

    file

    先通过一个简单的单层循环来了解一下这两个关键字的使用。

    print('=============单层循环使用=============')
    
    for n in range(10):
    
        if n == 9:
    
            print('退出当前循环,当前n = ', n)
    
            break
    
        elif n == 4:
    
            print('跳过当前循环,当前n = ', n)
    
            continue
    
        print('当前n = ', n)
    

    下面是执行以后的结果展示。

    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    

    根据执行完成的结果可以看出,n = 4时,当前的n值没有被打印,但是它还是往下执行了n = 5以后的打印,这就是continue的作用。

    而执行到break的关键字时就直接退出for循环了不会往下继续执行。

    同样的方式,将单层循环这次变成双层循环看一下效果。

    print('=============双层循环使用=============')
    
    for m in range(10):
    
        for n in range(10):
    
            if n == 9:
    
                print('退出当前循环,当前n = ', n)
    
                break
    
            elif n == 4:
    
                print('跳过当前循环,当前n = ', n)
    
                continue
    
            print('当前n = ', n)
    
        if m == 8:
    
            break
    

    下面是执行以后的结果展示。

    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    
    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    
    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    
    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    
    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    
    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    
    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    
    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    
    # 当前n =  0
    # 当前n =  1
    # 当前n =  2
    # 当前n =  3
    # 跳过当前循环,当前n =  4
    # 当前n =  5
    # 当前n =  6
    # 当前n =  7
    # 当前n =  8
    # 退出当前循环,当前n =  9
    

    根据结果,可以观察到内部循环的执行次数是9次,在执行到m = 8 时将循环退出了正好m的值只循环到了0-8正好是9次。

    而内部循环的break/continue只对内部循环生效,因此得出了结论break/continue只对它对应的当前循环生效。

    那如果是三层循环或者更多的层循环呢,效果也是一样的。

    print('=============三层循环使用=============')
    
    for i in range(3):
    
        for j in range(3):
    
            for k in range(3):
    
                if k in [1, 2, 3]:
    
                    continue
    
                print('当前k = ', k)
    
            if j in [1, 2, 3]:
    
                continue
    
            print('当前j = ', j)
    
        if i in [2, 3]:
    
            break
    
        print('当前i = ', i)
    

    同样的只需要在其对应的当前循环中加入break/continue的逻辑控制即可。

    # =============三层循环使用=============
    # 当前k =  0
    # 当前j =  0
    # 当前k =  0
    # 当前k =  0
    # 当前i =  0
    # 当前k =  0
    # 当前j =  0
    # 当前k =  0
    # 当前k =  0
    # 当前i =  1
    # 当前k =  0
    # 当前j =  0
    # 当前k =  0
    # 当前k =  0
    

    执行完结果以后,i 值对应的循环执行了0、1,j/k值对应的循环只执行了0。所以再一次印证了break/continue只对它自己对应的当前循环生效。

    【往期精彩】

    用python为心爱的人制作520照片墙,已成功做出效果图!

    两个库搞定python中引用javascript代码块/文件...

    python实现excel数据与mysql数据库互通有无!

    怎么用python做一个解压缩小工具,以后再也不用下载各种格式的解压缩软件了...

    python 实现超快窗口截图,自动获取当前活动窗口并展示截图...

    相关文章

      网友评论

          本文标题:python 如何在多层循环中使用break/continue

          本文链接:https://www.haomeiwen.com/subject/jaflprtx.html