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

如何在C语言中仅使用goto语句实现等效的do-while循环

C语言用goto实现等效do-while循环的方案

核心逻辑说明

原生do-while循环的执行规则是:先无条件执行1次循环体代码,再判断循环条件,条件为真则重复执行循环体,条件为假则直接退出循环,用goto实现时需要严格对齐这个执行顺序,不能增加额外的前置条件判断。

等效实现代码

// 循环体起始标签
loop_start:
    // Some code (和原do-while循环内的代码完全一致)

// 循环条件判断逻辑,和原do-while的while()内的条件完全一致
if (/* 原while括号内的条件表达式 */) {
    goto loop_start;
}
// 循环结束后的后续代码

等效性验证

  • 首次执行时会直接进入循环体代码,和do-while的「先执行一次循环体」逻辑完全一致
  • 循环体执行完成后才判断条件,条件成立时跳转回循环体开头重复执行,和do-while的判断时机、跳转逻辑完全匹配
  • 没有引入任何额外的执行分支,运行语义和原生do-while无差异

实际运行示例

比如原do-while循环代码:

#include <stdio.h>
int main() {
    int count = 0;
    do {
        printf("count = %d\n", count);
        count++;
    } while (count < 3);
    return 0;
}

等效的goto实现代码:

#include <stdio.h>
int main() {
    int count = 0;
loop_start:
    printf("count = %d\n", count);
    count++;
    if (count < 3) {
        goto loop_start;
    }
    return 0;
}

两段代码的运行输出完全一致,均为:

count = 0
count = 1
count = 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:27:02