python中如何在多层循环中使用break/continue
|
关于break/continue这两个关键字在平常的使用过程中一直比较迷糊。好不容易理解了吧,过段时间不使用好像忘记了什么。这个问题也是很多初学者比较容易提及的问题。
先通过一个简单的单层循环来了解一下这两个关键字的使用。- 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('=============三层循环使用=============')
- #学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
- 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只对它自己对应的当前循环生效。
来源:https://www.cnblogs.com/python1111/p/17962509
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|
|
|
发表于 2024-1-13 20:31:12
举报
回复
分享
|
|
|
|