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

关于break/continue这两个关键字在平常的使用过程中一直比较迷糊。好不容易理解了吧,过段时间不使用好像忘记了什么。这个问题也是很多初学者比较容易提及的问题。
【阅读全文】
python 如何在多层循环中使用break/continue
文章图片

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

print('=============单层循环使用=============')for n in range(10):if n == 9:print('退出当前循环,当前n = ', n)breakelif n == 4:print('跳过当前循环,当前n = ', n)continueprint('当前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)breakelif n == 4:print('跳过当前循环,当前n = ', n)continueprint('当前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]:continueprint('当前k = ', k)if j in [1, 2, 3]:continueprint('当前j = ', j)if i in [2, 3]:breakprint('当前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 如何在多层循环中使用break/continue
文章图片

【往期精彩】
用python为心爱的人制作520照片墙,已成功做出效果图!
两个库搞定python中引用javascript代码块/文件...
python实现excel数据与mysql数据库互通有无!
怎么用python做一个解压缩小工具,以后再也不用下载各种格式的解压缩软件了...
【python 如何在多层循环中使用break/continue】python 实现超快窗口截图,自动获取当前活动窗口并展示截图...

    推荐阅读