循环控制continue:跳过某次循环的实用技巧
写代码时,经常会遇到一种情况:在循环过程中,某些特定条件下的数据我们不希望处理,但又不想直接退出整个循环。这时候,continue 就派上用场了。
比如你在写一个程序,用来处理一组学生成绩。你只想统计及格学生的平均分,不及格的直接跳过。这时候如果用 if-else 嵌套,逻辑会越来越深。而用 continue,可以让代码更清爽。
continue 是怎么工作的?
continue 的作用是跳过当前这一次循环的剩余语句,直接进入下一次循环的判断。它不会终止整个循环,只是“这次我先不管,继续下一轮”。
来看一个简单的 Python 例子:
for i in range(5):
if i == 2:
continue
print(i)输出结果是:
0
1
3
4可以看到,当 i 等于 2 时,continue 被触发,print(i) 这行没有执行,程序直接跳到了 i=3 的那一轮。
实际应用场景:过滤无效数据
假设你从网页爬取了一组价格数据,但里面夹杂着一些缺失值或异常标记(比如 -1),你希望在计算总价时自动跳过这些无效项。
prices = [100, 50, -1, 80, -1, 120]
total = 0
for price in prices:
if price == -1:
continue
total += price
print(total) # 输出 350这里用 continue 快速过滤掉了无效价格,避免在累加时出错。比起把所有逻辑塞进 else 分支,这种方式读起来更顺畅。
在嵌套循环中使用 continue
注意:continue 只会影响它所在的那一层循环。如果是在内层循环中使用,外层循环不会受影响。
for i in range(2):
for j in range(3):
if j == 1:
continue
print(f'i={i}, j={j}')输出:
i=0, j=0
i=0, j=2
i=1, j=0
i=1, j=2每次 j 等于 1 时,内层循环跳过打印,但外层依然正常运行。
这种特性在处理二维数据、表格遍历或者多层筛选时特别有用。比如导出用户数据时,跳过某个字段为空的记录,但不影响其他用户的处理流程。
和 break 的区别别搞混
有些人容易把 continue 和 break 搞混。简单说:break 是彻底“散伙,不干了”,直接跳出循环;而 continue 是“我这轮请假,下轮还来”,只是跳过当前这一次。
举个生活化的例子:你在排队领免费冰淇淋,规则是每人限领一份。如果你发现前面那个人已经领过了(重复领取),你可以选择:
continue:跳过他,继续看下一个人有没有领过;break:算了,不发了,队伍解散。
显然,在大多数数据处理场景中,我们更需要的是“跳过异常,继续处理”,而不是直接中断。