do while 也就是 do while 循环,核心特点是先执行循环体内代码,之后再判断循环条件,只要条件成立就继续下一轮循环,这个和普通 while 循环最大区别就是 do while 至少会执行一次循环体,就算初始条件就是假,里面代码依然会跑一遍,这个特性非常适合菜单选择 用户输入校验这类场景,比如让用户输入数字,不管一开始是否满足要求,先弹出提示执行一次,再判断是否重复输入,C 语言 C 加加 Java JavaScript 这些主流语言语法基本一致,书写的时候要注意末尾分号,很多新手最容易漏掉 while 后面的分号,导致编译报错,下面把语法结构 执行流程 示例还有和 while 对比全部讲清楚。
基础语法结构
do
{
循环体代码
}
while (循环条件);
重点提醒 while 括号后面必须写分号,这个是 do while 独有的要求,普通 while 循环末尾不需要分号。
执行步骤
第一步 直接进入 do 里面,执行循环体全部代码
第二步 循环体执行完成之后,计算 while 括号里面的条件表达式
第三步 如果条件结果为真,回到第一步继续循环
第四步 如果条件结果为假,退出 do while 循环,继续执行后面代码
do while 和 while 循环对照表
| 对比项 | do while | while |
|---|---|---|
| 判断顺序 | 先执行循环体,后判断条件 | 先判断条件,后执行循环体 |
| 最少执行次数 | 至少执行 1 次 | 有可能一次都不执行 |
| 末尾分号 | while 后面必须加分号 | 不需要分号 |
| 适用场景 | 输入校验 菜单反复询问 | 已知条件可能一开始不满足的循环 |
代码示例 C 语言
include
int main()
{
int i = 1;
do
{
printf("%d\n", i);
i++;
}
while(i <= 5);
return 0;
}
上面代码会输出 1 2 3 4 5,i 初始是 1,先打印再自增,判断 i 小于等于 5 继续循环。
输入校验典型例子
int num;
do
{
printf("请输入1到10之间数字");
scanf("%d", &num);
}
while(num < 1 || num > 10);
这个例子就是 do while 经典用法,不管第一次输入对错,先执行一次提示和读取,输入不合法就重复询问。
常用配套关键字
break 在循环体内执行 break,立刻跳出 do while 循环,不再判断条件
continue 跳过本轮剩余代码,直接进入 while 条件判断,开启下一轮
常见错误
错误 1 漏掉 while 后面的分号,编译器直接报错
错误 2 循环里面忘记更新变量,条件永远为真,变成死循环
错误 3 混淆 do while 和 while,以为 do while 也是先判断条件,导致逻辑写错
【常见问题】
问题 1 dowhile 的用法和 while 最大区别是什么
回答 1 dowhile 的用法核心区别是先执行循环体再判断条件,dowhile 的用法保证循环体至少执行一次,普通 while 是先判断,条件不成立一次都不运行。
问题 2 dowhile 的用法末尾为什么一定要写分号
回答 2 dowhile 的用法语法规定 while 括号后面必须加分号,这是 do while 语句的结束标记,dowhile 的用法如果漏掉分号会直接编译报错。
问题 3 dowhile 的用法适合做用户输入校验吗
回答 3 dowhile 的用法非常适合用户输入校验,dowhile 的用法可以先执行一次读取输入,再判断输入是否合规,不合规则重复提示输入。
【免责申明】
本内容基于 C C 加加 Java 等通用语言标准语法整理,不同语言细节会有细微差别,dowhile 的用法请结合对应编程语言文档验证,内容仅作为编程学习参考。


