continue语句

continue 是循环结构(while/for)中的核心控制语句,作用是跳过当前循环迭代的剩余代码,直接回到循环条件判断处,开始下一次迭代(不会终止整个循环,仅跳过本次)。

一、核心特点

  1. 跳过本次,不终止循环 :与 break (直接终止整个循环)的核心区别;
  2. 仅作用于当前循环层 :嵌套循环中,continue 只影响所在的那一层循环;
  3. 执行逻辑 :遇到 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

五、注意事项

  1. 避免死循环 :在 while 循环中使用 continue 时,务必确保循环变量(如 num/j)在 continue 前 / 后有更新逻辑,否则变量值不变,条件永远为真,导致死循环。❌ 错误示例(死循环):

    python

    运行

    dart 复制代码
    num = 1
    while num <= 5:
        if num == 3:
            continue  # 跳过后续的num+=1,num永远为3,循环永不结束
        print(num)
        num += 1

    ✅ 正确示例(先更新再判断):

    python

    运行

    dart 复制代码
    num = 0
    while num <= 5:
        num += 1
        if num == 3:
            continue
        print(num)  # 输出1、2、4、5、6
  2. 代码位置continue 后的代码永远不会执行(本次迭代),因此需将判断逻辑放在 continue 之前,避免无效代码。

  3. 其他语言的语法一致性 :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 即可实现条件性跳过,是简化循环逻辑的关键语句。

相关推荐
superman超哥2 小时前
Rust 日志级别与结构化日志:生产级可观测性实践
开发语言·后端·rust·可观测性·rust日志级别·rust结构化日志
每天早点睡2 小时前
while语句
后端
风象南2 小时前
Spring Boot 配置 diff 实战
后端
不会写代码的里奇2 小时前
从零开发基于DeepSeek的端侧离线大模型语音助手:全流程指南
c++·后端·音视频
不能放弃治疗2 小时前
发消息逻辑写在MySQL事务中,导致消费逻辑Bug
后端
Cache技术分享2 小时前
279. Java Stream API - Stream 拼接的两种方式:concat() vs flatMap()
前端·后端
纯粹的热爱2 小时前
Rust 安装加速指南
后端
南昌彭于晏2 小时前
解决springboot静态内部类非空校验无效的问题
java·spring boot·后端
czlczl200209252 小时前
MybatisPlusInterceptor实现无感修改SQL的底层原理(源码)
数据库·spring boot·后端·sql