C语言continue语句具体作用是什么?

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 C语言 正文

一句话概括

continue 的作用是:立即结束当前正在执行的本次循环,并直接跳转到循环的条件判断部分,准备开始下一次循环。

c语言continue的意思
(图片来源网络,侵删)

核心要点

  1. 它只影响循环continue 关键字只能在 forwhiledo-while 循环内部使用,在循环外面使用会导致编译错误。
  2. “跳过”而非“终止”continuebreak 的最大区别在于:
    • break完全跳出整个循环,循环不再执行。
    • continue跳过本次循环剩余的代码,但循环本身还在继续,会执行下一次迭代。
  3. 流程控制:当程序执行到 continue 时,它会立即中断当前循环体中 continue 语句之后的所有代码,然后根据循环的类型,直接跳转到循环的“头”部:
    • for 循环中,会跳转到“增量表达式” (i++) 部分,然后再判断循环条件。
    • whiledo-while 循环中,会跳转到“条件判断”部分。

代码示例

为了更好地理解,我们来看几个例子。

示例 1:在 for 循环中使用 continue

这个例子会打印 1 到 10 之间除了 5 以外的所有数字。

#include <stdio.h>
int main() {
    for (int i = 1; i <= 10; i++) {
        // i 等于 5,就执行 continue
        if (i == 5) {
            printf("跳过了数字 5\n");
            continue; // 立即跳转到 i++,然后判断 i <= 10
        }
        // 这行代码在 i == 5 时不会被执行
        printf("当前数字是: %d\n", i);
    }
    return 0;
}

执行流程分析:

  1. i = 1, 2, 3, 4if 条件为假,正常打印 "当前数字是: 1/2/3/4"。
  2. i = 5if 条件为真。
    • 打印 "跳过了数字 5"。
    • 执行 continue
    • 立即跳转到 i++i 变成 6。
    • 判断 i <= 10 (6 <= 10),为真,继续循环。
  3. i = 6, 7, 8, 9, 10if 条件为假,正常打印 "当前数字是: 6/7/8/9/10"。
  4. i = 11i <= 10 为假,循环结束。

输出结果:

c语言continue的意思
(图片来源网络,侵删)
当前数字是: 1
当前数字是: 2
当前数字是: 3
当前数字是: 4
跳过了数字 5
当前数字是: 6
当前数字是: 7
当前数字是: 8
当前数字是: 9
当前数字是: 10

示例 2:在 while 循环中使用 continue

这个例子会读取用户输入,直到用户输入一个负数为止,但会忽略所有输入的 0。

#include <stdio.h>
int main() {
    int num;
    printf("请输入一个整数(输入负数结束):");
    while (scanf("%d", &num) == 1) { // 循环条件:成功读取一个整数
        if (num == 0) {
            printf("输入了 0,忽略不计,请继续输入:");
            continue; // 立即跳转到 while 的条件判断部分
        }
        if (num < 0) {
            printf("检测到负数,程序结束,\n");
            break; // 使用 break 来完全退出循环
        }
        printf("你输入的正数是: %d\n", num);
        printf("请继续输入:");
    }
    return 0;
}

执行流程分析:

  1. 用户输入 5
    • num 是 5,不为 0。
    • num 不小于 0。
    • 打印 "你输入的正数是: 5"。
  2. 用户输入 0
    • num 是 0。
    • if (num == 0) 为真。
    • 打印 "输入了 0,忽略不计..."。
    • 执行 continue
    • 立即跳转到 while (scanf(...)),重新等待用户输入,continue 之后的 printf 不会执行。
  3. 用户输入 -10
    • num 是 -10。
    • if (num == 0) 为假。
    • if (num < 0) 为真。
    • 打印 "检测到负数,程序结束。"。
    • 执行 break,整个 while 循环彻底终止。

continue vs break 对比表

特性 continue break
作用 跳过本次循环的剩余代码,进入下一次循环。 完全跳出整个循环。
影响范围 只影响当前所在的循环。 跳出当前所在的循环或 switch 语句。
使用位置 只能在循环 (for, while, do-while) 内部。 可以在循环 (for, while, do-while) 或 switch 语句内部使用。
比喻 “这个任务不做了,下一个任务继续。” “今天所有任务都不做了,收工!”

continue 是 C 语言中一个非常有用的流程控制语句,它允许你有选择性地跳过循环体中的某些代码,从而让循环逻辑更清晰、更高效,当你遇到某个条件,不希望执行循环体中后续的操作,但又不想终止整个循环时,continue 就是最佳选择。

c语言continue的意思
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
C语言for循环中break如何跳出循环?
« 上一篇 今天
dede搜索如何指定内容模型?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]