国际访客建议访问 Primers 编程伙伴 国际版站点 > C 教程 > while 循环语句 以获得更好的体验。

# C 语言的 while 循环语句

循环语句(Loop Statement) 是一种让程序重复执行一段代码的语句。

C 语言可以使用 whiledo ... while 来创建循环,前者先判断循环条件再执行代码,后者先执行代码再判断循环条件。

# while 循环

while 循环的基本结构如下:

while (循环条件)
{
    循环体
}

说明:

  • 判断“循环条件”是否为 true

    • 如果为 true 则执行循环体,然后进入下一轮循环

    • 如果为 false 则结束循环

graph TD
    START([开始]) --> COND{循环条件?} -- 是 --> 循环体 --> COND
    COND -- 否 --> END([结束])

示例:

#include <stdio.h>

int main(void)
{
    int i = 5;

    while (i > 0)   // i 大于 0 时执行循环
    {
        printf("循环执行,i=%d\n", i);
        i -= 1;     // 将 i 的值减一
    }

    return 0;
}

说明:

  • i 大于 0 时,执行循环

  • 循环中打印 i 的值,然后将 i 值减一

运行结果:

循环执行,i=5
循环执行,i=4
循环执行,i=3
循环执行,i=2
循环执行,i=1

# do ... while 循环

do ... while 循环的基本结构如下:

do
{
    循环体
}
while(循环条件);

说明:

  • 执行“循环体”,然后判断“循环条件”是否为 true

    • 如果为 true,则进入下一轮循环

    • 如果为 false 则结束循环

因为 do ... while 先执行循环体,再进行循环条件的判断;所以即使循环条件一开始就是 false,循环体也会执行一次。

graph TD
    START([开始]) --> 循环体 --> COND{循环条件?} -- 是 --> 循环体
    COND -- 否 --> END([结束])

示例:

#include <stdio.h>

int main(void)
{
    int i = 0;      // 初始值为 0

    do
    {
        printf("循环执行,i=%d\n", i);
        i -= 1;     // 将 i 的值减一
    }
    while (i > 0);  // i 大于 0 时继续执行循环

    return 0;
}

说明:

  • 循环中打印 i 的值,然后将 i 值减一

  • i 大于 0 时,继续执行循环

虽然 i 的初始值是 0,不满足大于 0 的条件;但是由于先执行“循环体”,后判断“循环条件”;所以仍然会打印一次。

运行结果:

循环执行,i=0

# break 跳出循环

使用 break 可以提前跳出循环。

示例:

#include <stdio.h>

int main(void)
{
    int i = 5;

    while (i > 0)   // i 大于 0 时执行循环
    {
        printf("循环执行,i=%d\n", i);
        i -= 1;     // 将 i 的值减一

        if (i == 2) // 如果 i 的值为 2
        {
            break;  // 跳出循环
        }
    }

    return 0;
}

说明:

  • i 大于 0 时,执行循环

  • “循环体”中如果 i 的值是 2,则提前结束循环

运行结果:

循环执行,i=5
循环执行,i=4
循环执行,i=3

# continue 继续循环

使用 continue 可以提前进入下一轮循环。

示例:

#include <stdio.h>

int main(void)
{
    int i = 5;

    while (i > 0)       // i 大于 0 时执行循环
    {
        if (i % 2 == 0) // 如果 i 除以 2 的余数为0
        {
            i -= 1;     // 将 i 的值减一
            continue;   // 进入下一轮循环
        }

        printf("循环执行,i=%d\n", i);
        i -= 1;         // 将 i 的值减一
    }

    return 0;
}

说明:

  • i 大于 0 时,执行循环

  • “循环体”中如果 i 除以 2 余数为 0,则提前进入下一轮循环

运行结果:

循环执行,i=5
循环执行,i=3
循环执行,i=1
本文 更新于: 2025-11-27 09:38:05 创建于: 2025-11-27 09:38:05