dowhile 语句也就是 do while 循环语句,属于后判断型循环,执行顺序是先运行循环体内代码,再判断括号里面的条件表达式,条件成立就继续下一轮,条件不成立就退出循环,这个语句最大特点就是循环体至少执行一次,这也是它和 while 语句最核心差别,C 语言 C 加加 Java 等主流编程语言语法规则基本一致,考试和编程题经常考察这个特性,还有末尾分号这个考点,非常容易丢分,dowhile 语句多用于菜单交互 输入合法性校验这类必须先执行一次操作再判断是否重复的场景,下面把语法格式 执行流程 示例 对比还有易错点全部整理清楚。
基础语法格式
do
{
循环体语句
}
while (条件表达式);
重点要点 while 括号结尾必须写分号,这是 dowhile 语句硬性语法要求,普通 while 循环末尾不需要分号,是高频易错点。
完整执行流程
第一步 进入 do 代码块,执行循环体里面全部语句
第二步 循环体执行完毕,计算 while 后面的条件表达式
第三步 条件结果为真,跳回 do,再次执行循环体
第四步 条件结果为假,结束 dowhile 语句,继续执行后续代码
dowhile 语句与 while 语句对照表
| 对比项目 | dowhile 语句 | while 语句 |
|---|---|---|
| 判断时机 | 先执行循环体,后判断条件 | 先判断条件,后执行循环体 |
| 最低执行次数 | 至少执行 1 次 | 条件一开始不成立则 0 次执行 |
| 结尾分号 | while 后面必须加分号 | 无分号 |
| 典型场景 | 输入校验 反复菜单 | 预知条件可能一开始不满足的循环 |
代码示例
基础累加示例
include
int main()
{
int i = 1, sum = 0;
do
{
sum = sum + i;
i++;
}
while(i <= 10);
printf("%d",sum);
return 0;
}
输入校验经典案例
int n;
do
{
printf("请输入正整数");
scanf("%d",&n);
}
while(n <= 0);
不管第一次输入是不是合法,都会先执行一次提示和读取,输入不符合要求就循环重复询问。
配套控制语句
break 在循环体内执行 break,立刻终止 dowhile 语句,不再继续判断条件
continue 跳过本轮循环剩下代码,直接执行 while 条件判断,开启下一轮循环
常见错误
第一 忘记 while 后面的分号,编译直接报错
第二 循环体内没有修改循环变量,条件永远为真,形成死循环
第三 混淆 dowhile 语句和 while,误以为 dowhile 语句也是先判断条件
第四 大括号只写单行语句的时候省略,后续修改代码引发逻辑错误
【常见问题】
问题 1 dowhile 语句的用法为什么至少执行一次
回答 1 dowhile 语句是后判断循环,dowhile 语句会先跑循环体,之后才判断条件,所以 dowhile 语句哪怕初始条件不成立,循环体依然执行一次。
问题 2 dowhile 语句末尾分号可以省略吗
回答 2 dowhile 语句语法规定 while 括号后面必须加分号,dowhile 语句不能省略这个分号,省略之后编译会报错。
问题 3 dowhile 语句适合做密码反复输入吗
回答 3 dowhile 语句非常适合密码反复输入校验,dowhile 语句可以先执行一次读取密码,再判断对错,错误就循环重试。
【免责申明】
本内容基于 C C 加加 Java 通用标准语法整理,不同编程语言细节略有差异,dowhile 语句相关写法请结合对应教材与编译器验证,内容仅作为编程学习参考。


