continue 是循环结构(while/for)中的核心控制语句,作用是跳过当前循环迭代的剩余代码,直接回到循环条件判断处,开始下一次迭代(不会终止整个循环,仅跳过本次)。
一、核心特点
- 跳过本次,不终止循环 :与
break(直接终止整个循环)的核心区别; - 仅作用于当前循环层 :嵌套循环中,
continue只影响所在的那一层循环; - 执行逻辑 :遇到
continue→ 立即跳出本次循环体剩余代码 → 执行循环的 "更新 / 判断" 步骤(如while的条件判断、for的下一个元素遍历)。
二、基本用法(结合 while/for 示例)
示例 1:while 循环中使用 continue(跳过偶数,打印 1-10 的奇数)
python
运行
dart
num = 0
while num < 10:
num += 1 # 先递增,再判断
if num % 2 == 0: # 判定为偶数时
continue # 跳过后续的print,直接回到while条件判断
print(num) # 仅奇数会执行这行
执行流程拆解:
- num=1 → 不是偶数 → 打印 1;
- num=2 → 是偶数 → 触发 continue → 跳过 print → 回到 while 条件(num<10 仍成立);
- num=3 → 不是偶数 → 打印 3;
- ...... 直到 num=10,循环结束。
输出:
plaintext
1
3
5
7
9
示例 2:for 循环中使用 continue(跳过列表中的特定元素)
python
运行
ini
fruits = ["苹果", "香蕉", "榴莲", "橙子", "榴莲"]
for fruit in fruits:
if fruit == "榴莲": # 跳过"榴莲"
continue
print(f"我喜欢吃{fruit}")
输出:
plaintext
我喜欢吃苹果
我喜欢吃香蕉
我喜欢吃橙子
三、常见场景
场景 1:过滤无效数据(跳过空值 / 异常值)
python
运行
python
# 遍历列表,仅打印非空的有效字符串
data = ["", "hello", None, "world", " ", "python"]
for item in data:
# 跳过空字符串、None、纯空格的元素
if not item or item.strip() == "":
continue
print(f"有效数据:{item}")
输出:
plaintext
有效数据:hello
有效数据:world
有效数据:python
场景 2:嵌套循环中的 continue(仅影响内层循环)
python
运行
python
# 打印1-3的乘法表,但跳过第二个数为2的情况
i = 1
while i <= 3:
j = 1
while j <= 3:
if j == 2:
j += 1 # 必须手动更新j,否则内层循环会卡死(continue后j一直为2)
continue
print(f"{i}×{j}={i*j}", end=" ")
j += 1
print() # 换行
i += 1
关键注意 :嵌套 while 中使用 continue 时,需手动更新循环变量(如上例的 j += 1),否则会因变量未更新导致死循环 (j 永远为 2,条件j<=3一直成立,且每次都触发 continue)。
输出:
plaintext
ini
1×1=1 1×3=3
2×1=2 2×3=6
3×1=3 3×3=9
四、continue 与 break 的核心区别
| 语句 | 作用 | 循环后续状态 |
|---|---|---|
| continue | 跳过本次迭代剩余代码 | 继续下一次迭代(循环不终止) |
| break | 直接终止整个循环 | 循环彻底结束 |
对比示例:
python
运行
bash
# continue版:跳过2,打印1、3、4
print("=== continue ===")
for i in 1,2,3,4:
if i == 2:
continue
print(i)
# break版:遇到2直接终止,仅打印1
print("=== break ===")
for i in 1,2,3,4:
if i == 2:
break
print(i)
输出:
plaintext
ini
=== continue ===
1
3
4
=== break ===
1
五、注意事项
-
避免死循环 :在
while循环中使用continue时,务必确保循环变量(如num/j)在continue前 / 后有更新逻辑,否则变量值不变,条件永远为真,导致死循环。❌ 错误示例(死循环):python
运行
dartnum = 1 while num <= 5: if num == 3: continue # 跳过后续的num+=1,num永远为3,循环永不结束 print(num) num += 1✅ 正确示例(先更新再判断):
python
运行
dartnum = 0 while num <= 5: num += 1 if num == 3: continue print(num) # 输出1、2、4、5、6 -
代码位置 :
continue后的代码永远不会执行(本次迭代),因此需将判断逻辑放在continue之前,避免无效代码。 -
其他语言的语法一致性 :Java/C/C++/JavaScript 中
continue的逻辑与 Python 完全一致,仅语法格式差异(如大括号代替缩进):java
运行
ini// Java示例:跳过偶数 for (int i = 1; i <= 5; i++) { if (i % 2 == 0) { continue; } System.out.println(i); // 输出1、3、5 }
总之,continue 的核心价值是 "精准过滤循环中的特定场景",让代码无需嵌套多层 if 即可实现条件性跳过,是简化循环逻辑的关键语句。