You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

给定C代码中do while循环内continue语句执行后的控制流向问询

关于C语言do-while循环中continue语句的控制流问题

先来看你提供的这段C代码:

#include <stdlib.h>
#include <stdio.h>
enum {false, true};
int main() {
    int i = 1;
    do {
        printf("%d\n", i);
        i++;
        if (i < 15) continue;
    } while (false);
    getchar();
    return 0;
}

咱们一步步捋清楚执行流程,重点说continue的行为:

  1. 程序启动后,i被初始化为1。因为是do-while循环,它的特性是先执行一次循环体内容,再判断循环条件,所以首先会打印出1,接着i自增为2。
  2. 接下来进入if (i < 15)的判断:此时i=2,满足条件,于是触发continue语句。
  3. 在C语言中,continue的核心作用是:跳过当前循环体中continue之后的所有剩余代码,直接跳转到循环的条件判断环节。
    放到这个do-while场景里,执行continue后,程序会立刻跳到while(false)这个条件检查的位置,不会再执行循环体里continue之后的任何代码(不过这段代码里continue后面已经没有其他代码了)。
  4. 因为while的条件是false,条件不成立,循环直接终止。
  5. 最后程序执行getchar()等待用户输入,然后返回0结束运行。

额外补充:哪怕i的值后来增长到15或更大,不会触发continue,循环体执行完毕后还是会走到while(false)的判断,循环依然会终止——毕竟这个do-while的终止条件从一开始就是固定为假的,本质上只会执行一次循环体。

内容的提问来源于stack exchange,提问作者user13027222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 09:37:54