C do while 循环

C do...while 语法

在 C 语言中,除了 while 语句,我们还可以使用 do...while 语句来实现循环。

语法:

do
{
    ……
} while (条件);

说明:

do...while 语句首先是无条件执行循环体一次,然后再判断是否符合条件。如果符合条件,则重复执行循环体;如果不符合条件,则退出循环。

do...while 语句跟 while 语句是非常相似的,并且任何一个都可以转换成等价的另外一个。

do...while 语句结尾处括号后有一个分号(;),该分号一定不能省略,这是初学者最容易忽略的一点,大家一定要记得!

C do...while 示例

接下来,我们通过一个简单的例子来讲解一下 do...while 循环是如何使用的。

示例 1:do...while 计算 1 + 2 + 3 + … + 100 的和

#include <stdio.h>

int main(void)
{
    int n = 1;
    int sum = 0;

    do
    {
        sum += n;      // 等价于 sum = sum + n;
        n++;           // 等价于 n = n + 1;
    } while (n <= 100);
    printf("1 + 2 + 3 + ... + 100 = %d", sum);

    return 0;
}

运行结果如下。

1 + 2 + 3 + ... + 100 = 5050

分析:

对于上面例子来说,如果使用流程图来表示,效果如下图所示。

C do...while 循环流程图

将这个例子与上一节(C while 循环)的例子对比,我们可以总结出以下 2 点。

  • while 循环和 do...while 循环是可以互相转换的,但它们侧重的场景不同。建议小伙伴们重点掌握 while,但也必须理解 do...while 的执行机制。
  • while 循环是 “先判断、后循环”,而 do...while 循环是 “先循环、后判断”,这是两者本质上的区别。其中,do...while 循环中的循环体至少会被执行一次,即使初始条件不满足。

C do...while 的适用场景

在实际开发中,我们大多数情况下都是用 while 循环,而不是用 do...while 循环,主要是 do...while 循环会先无条件执行一次循环,有时候用得不好的话,这个特点会导致执行一次不该执行的循环。

虽然 while 循环更常用,但在某些情况下,do...while 循环会更加方便和自然。比如需要先执行一次操作,然后再根据结果判断是否继续循环的场景。

示例 2:do...while 用于判断用户密码

#include <stdio.h>

int main(void) 
{
    int password;

    do 
    {
        printf("请输入密码(4 位数):");
        scanf("%d", &password);
    } while (password < 1000 || password > 9999);
    printf("密码输入正确!\n");

    return 0;
}

编译并运行之后,输入 “6666”,其结果如下:

请输入密码(4 位数):6666 密码输入正确!

分析:

从用户那里读取输入,需要先读取一次,然后判断输入是否有效,如果无效则继续要求用户输入。像这种情况使用 do...while 循环会更加方便一些。

上一篇: C while 循环

下一篇: C for 循环

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号