Python 的 break 和 continue 用来改变循环的正常走向:break 立刻结束整个循环,continue 只跳过本轮剩下的语句、进入下一轮。它们写在 for 或 while 里,常和条件判断一起用。
遍历字符串 "string",遇到字母 i 就停,后面的字符不必再看,这就是 break 的典型用法:
在字符串里找字符
for val in "string":
if val == "i":
break
print(val)
print("末尾")输出:
s
t
r
末尾打印出 s、t、r 之后碰上 i,break 结束整个 for,循环后面的 print("末尾") 仍会执行。
break:终止整个循环
break 一旦执行,立刻跳出它所在的最内层循环,for 和 while 都适用,常见用法是找到结果后提前退出,避免无意义的继续迭代:
for i in range(1, 10):
if i * i > 30:
print("第一个平方大于30的数是", i)
break # 找到了就不再继续输出:
第一个平方大于30的数是 6continue:跳过这一次
continue 不会结束整个循环,只跳过本轮剩下的语句,进入下一轮迭代。过滤掉不想处理的数据时很常用:
for val in "string":
if val == "i":
continue
print(val)
print("末尾")输出:
s
t
r
n
g
末尾字母 i 被跳过,其他字符照常打印,循环也会正常走到结束。
continue 流程:遇到符合条件的数据跳过本轮,直接进入下一轮
while 里也能用
i = 0
while i < 10:
i = i + 1
if i % 2 == 0:
continue # 偶数跳过
if i > 7:
break # 大于7就停
print(i)输出(1、3、5、7):
1
3
5
7break 与 continue 的区别
| 语句 | 作用 | 典型场景 |
|---|---|---|
break | 直接结束整个循环 | 找到结果、输入退出、提前终止 |
continue | 跳过本次,继续下一轮 | 过滤非法或不需要的数据 |
和 for/while 的 else 配合
循环的 else 只有在没被 break 打断时才会执行,因此找遍了都没有命中时,可以把收尾逻辑放在 else 里:
target = 8
for i in range(1, 6):
if i == target:
print("找到了", i)
break
else:
print("没找到") # 1~5 里没有 8,会执行这里容易混淆的两点
嵌套循环里,break 只结束最内层那一层。若要连外层一起停,通常设一个标志变量,或把查找逻辑拆进函数里用 return 早退。
while 里用 continue 时,如果把计数器更新写在 continue 后面,条件可能永远为真,变成死循环。把 i = i + 1 这类更新放在 continue 之前。