C语言如何实现repeat until循环结构?

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

在 C 语言中,没有直接的 repeat...until 循环结构repeat...until 是 Pascal 语言中的一个循环,它的特点是先执行循环体,然后判断条件,如果条件为真,则退出循环(即“直到条件成立时才停止”)。

c语言 repeat until
(图片来源网络,侵删)

我们可以通过 C 语言中的其他循环结构(如 do-while)轻松实现 repeat...until 的逻辑。


do-while 循环:最接近 repeat...until 的替代方案

C 语言的 do-while 循环与 repeat...until 的行为几乎完全一致:

  • 先执行循环体,然后检查条件
  • 如果条件为,则继续循环(与 repeat...until 的“直到条件成立才停止”逻辑相反)。
  • 如果条件为,则退出循环

语法:

do {
    // 循环体(至少执行一次)
} while (condition);  // 注意:分号不能少!

示例:

#include <stdio.h>
int main() {
    int i = 1;
    // 类似 repeat...until 的逻辑
    do {
        printf("i = %d\n", i);
        i++;
    } while (i <= 5);  // 当 i > 5 时退出循环
    return 0;
}

输出:

i = 1
i = 2
i = 3
i = 4
i = 5

while 循环(不直接等效)

while 循环是先判断条件,再执行循环体,因此如果初始条件为假,循环体一次都不会执行,这与 repeat...until 的“至少执行一次”逻辑不同。

c语言 repeat until
(图片来源网络,侵删)

示例:

int i = 10;
while (i <= 5) {  // 条件为假,循环体不执行
    printf("This won't print\n");
}

for 循环(不直接等效)

for 循环也是先判断条件,因此同样无法直接实现 repeat...until 的逻辑。


使用 goto 模拟 repeat...until(不推荐)

虽然可以用 goto 模拟,但这种方式会降低代码可读性,通常不推荐使用。

示例:

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

循环类型 执行顺序 是否至少执行一次 是否等效 repeat...until
do-while 先执行,后判断
while 先判断,后执行
for 先判断,后执行
goto 通过标签跳转 是(但不推荐)

推荐做法:直接使用 do-while 循环来实现 repeat...until 的逻辑。

c语言 repeat until
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
dede栏目id如何获取与使用?
« 上一篇 2025-12-17
Ueditor与Dede如何实现图片上传?
下一篇 » 2025-12-17

相关文章

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

目录[+]