关于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为心爱的人制作520照片墙,已成功做出效果图!
两个库搞定python中引用javascript代码块/文件...
python实现excel数据与mysql数据库互通有无!
怎么用python做一个解压缩小工具,以后再也不用下载各种格式的解压缩软件了...
【python 如何在多层循环中使用break/continue】python 实现超快窗口截图,自动获取当前活动窗口并展示截图...
推荐阅读
- 如何在Windows上安装python并设置基本的hello world
- 基于python的口罩识别
- 数据库|SpringBoot脚手架工程快速搭建
- python-海洋数据处理|python 将垂直速度从压力坐标系转为高度坐标系(pa/s转为m/s)
- python-海洋数据处理|python 基于metpy计算位涡平流项(水平)
- 机器学习基础|机器学习基础(完结篇)—初识推荐系统与计算机视觉
- 图神经网络|图神经网络(一)—GraphSAGE-pytorch版本代码详解
- 炼丹|使用FCOS训练自己的数据
- 用 Python 做“贪吃蛇”,在线吃不饱