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 一开始为真,所以循环执行了多次。但如果条件从一开始就为假呢?
在下面的例子中,变量 i 从 10 开始,因此条件 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() 函数和用户输入的知识。