C 语言 - Do/While 循环

Do/While 循环

do/while 循环是 while 循环的一种变体。这种循环会先执行一次代码块,然后再检查条件是否为真,只要条件为真,它就会重复循环。

语法

do {
  // 要执行的代码块
}
while (condition);

下面的例子使用了 do/while 循环。即使条件为假,循环也至少会执行一次,因为在测试条件之前已经执行了代码块:

实例

int i = 0;

do {
  printf("%d\n", i);
  i++;
}
while (i < 5);

亲自试一试

不要忘记增加条件中使用的变量,否则循环将永远不会结束!

条件从一开始就为假

在上面的例子中,条件 i < 5 一开始为真,所以循环执行了多次。但如果条件从一开始就为假呢?

在下面的例子中,变量 i10 开始,因此条件 i < 5 立即为假——但 do/while 循环仍然运行一次:

实例

即使条件从一开始就为假,代码块仍然会执行一次:

int i = 10;

do {
  printf("i 的值是 %d\n", i);
  i++;
} while (i < 5);

亲自试一试

总结

即使条件已经为假,do/while 循环也总是至少运行一次。这与常规的 while 循环不同,后者如果条件一开始为假,则会完全跳过循环。

这种行为使得 do/while 在您想确保某件事至少发生一次时非常有用,例如显示一条消息或询问用户输入。

实际示例:用户输入

此例不断要求用户输入一个正数。当用户输入 0 或负数时,循环停止:

实例

int number;

do {
  printf("请输入一个正数:");
  scanf("%d", &number);
} while (number > 0);

注意:您将在后面的章节中学习更多关于 scanf() 函数和用户输入的知识。