do...while
是 C 语言中的一种循环结构,它与 while
循环相似,但有一个重要的区别:do...while
循环至少执行一次循环体,因为条件判断是在循环体执行之后进行的。
do...while
循环的语法
do {
// 循环体
} while (条件表达式);
- 循环体:要执行的代码块。
- 条件表达式:循环是否继续的判断条件。如果条件为真(非零),则继续循环;为假(零),则结束循环。
执行过程
- 先执行循环体,然后检查条件表达式。
- 如果条件为真(非零),则继续执行循环体;如果为假(零),则退出循环。
与 while
的区别
while
循环先检查条件,如果条件一开始就是假(零),可能一次也不执行循环体。do...while
循环先执行循环体,然后再检查条件,所以至少执行一次。do...while
循环的示例:示例 1:打印从 1 到 5- #include <stdio.h>
int main() {
int i = 1;
do {
printf("%d ", i);
i++; // 更新 i
} while (i <= 5);
return 0;
} -
输出:
1 2 3 4 5
在这个示例中,
do...while
循环至少会执行一次,即使初始条件可能会失败。示例 2:用户输入的有效性检查
假设你要求用户输入一个正数,使用
do...while
确保至少输入一次,并且在输入无效时会继续提示用户。 -
#include <stdio.h>
int main() {
int num;
do {
printf("请输入一个正数:");
scanf("%d", &num);
} while (num <= 0); // 只要输入不是正数,就继续循环
printf("您输入的正数是:%d\n", num);
return 0;
} -
示例输出:
请输入一个正数:-5
请输入一个正数:0
请输入一个正数:10
您输入的正数是:10常见错误
-
忘记更新循环变量: 如果在
do...while
循环中忘记更新控制条件的变量,可能会导致无限循环。 -
条件错误: 如果条件写反,可能会导致循环过早结束或不按预期运行。