Python中break与continue的区别详解
本文详细解析Python中break和continue语句的区别。break用于立即终止整个循环,而continue仅跳过当前迭代进入下一次循环。文章通过代码示例、嵌套循环行为及else子句的影响,深入对比两者的应用场景与注意事项。
前言
近期在Python问答区发现许多开发者对break和continue的使用存在混淆,因此撰写本文进行澄清(并非为了日后复制粘贴方便)。
break
在while和for循环中,若满足特定条件,程序可能会结束或陷入无限循环。此时,我们需要一种机制在满足条件时主动终止循环,或在特定阶段跳出循环。
break常与if、elif、else配合使用。
break的用法直观,即跳出循环,但需注意以下几点:
1. break仅跳出一层循环:在for-for嵌套结构中,一个break只会结束内层循环,随后继续执行外层循环。
2. break是绝对跳出,被跳出的循环不再继续执行(嵌套循环除外)。
3. break在while-else和for-else结构中行为特殊。
a = 0
while(a<10):
print(a)
if a == 8:
break
a+=1
else:
print("ok")result: 0 1 2 3 4 5 6 7 8
a = 0
while(a<10):
print(a)
a+=1
else:
print("ok")result: 0 1 2 3 4 5 6 7 8 9 ok
例子
题目来源:牛客网编程NP9报数游戏
牛牛与朋友玩报数游戏,共n人围成一圈,牛牛初始在第m位。从第1人开始报数,报到3的倍数或含3的数字者退出。问牛牛是第几个退出?
输入描述:
第一行输入n,n>2
第二行输入m,m<n
输出描述:
输出每次有人退出时的编号
输出牛牛是第几个退出的人
思路:
使用while-for嵌套确保无限进行,添加两个break:一个在牛牛是最后一个人时触发,另一个在牛牛退出时触发。
代码:
a = int(input())
b = int(input())
ls = [i for i in range(1,a+1)]
c = []
flag = True
cout = 0
num = 0
while True:
for i in range(1,len(ls)+1):
num += 1
if num % 3 == 0 or "3" in str(num):
print("编号为{}的淘汰了".format(ls[i-1]))
c.append(ls[i-1])
cout += 1
if ls[i-1] == b:
print("第{}个".format(cout))
flag = False
break
ls = [i for i in range(1,a+1) if i not in c]
if not flag:
breakcontinue
continue跳过当次循环剩余语句,开始下一次循环。多与if配合,少数情况用于其他场景。
即使continue在if内,执行后if外语句也会被跳过。
for i in range(1,3):
if i % 2 == 0:
continue
print(i)
result: 1
例子
题目来源:牛客网编程NP17前十个偶数
通过range()指定三个参数创建列表my_list,包含[1,10000]所有奇数;使用for循环打印其中的质数(每行一个)。
思路:
先用range和迭代器生成list,再用continue搭配if判断输出。
代码:
ls = [i for i in range(2,10001)]
for i in ls:
notprime = False
for j in range(2,i):
if i % j != 0:
continue
notprime = True
break
if i == 2:
notprime = True
if not notprime:
print(i)对比
相同:
1. break和continue都能结束当前循环迭代
2. break和continue常与if配合使用
3. break和continue是独立语句,无需参数,不能置于判断语句中
不同:
1. break跳出循环,不继续下次循环;continue结束当前迭代,但继续下次循环
2. break对for else和while else有特殊作用,continue没有
3. break应用更广,多数情况下优先使用break而非continue
到此这篇关于Python详细对比讲解break和continue区别的文章就介绍到这了,更多相关Python break和continue内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









