do while是C语言中用于实现循环逻辑的一种语句结构,属于三种基础循环类型之一,它的核心执行逻辑是先运行循环体中的代码,再判断循环条件是否满足,因此无论条件是否成立,循环体至少会被执行一次。这种特性让它在一些需要先执行操作再校验条件的场景中非常实用。

do while的基本语法结构
do while的语法格式非常固定,具体结构如下:
do {
// 循环体代码,需要重复执行的逻辑
} while (循环条件);
需要注意while后面的条件判断括号后必须加英文分号,这是很多初学者容易遗漏的细节。循环条件的结果为真时,会继续执行下一次循环,结果为假时则退出循环。
do while的执行流程
do while的执行步骤可以分为三步:
- 第一步:直接进入循环体,执行循环体中的所有代码
- 第二步:执行完循环体后,判断while后面的循环条件是否成立
- 第三步:如果条件成立,回到循环体再次执行;如果条件不成立,结束整个循环,执行循环后面的代码
代码示例演示
下面通过一个简单的例子展示do while的实际用法,这个例子会循环打印1到5的数字:
#include <stdio.h>
int main() {
int i = 1;
do {
printf("当前数字是:%dn", i);
i++;
} while (i <= 5); // 当i小于等于5时继续循环
return 0;
}
这段代码的执行结果是依次输出1到5,即使初始时i的值大于5,循环体也会先执行一次,比如把i初始化为6,程序也会先打印一次6再结束循环。
do while和while循环的区别
很多初学者会混淆do while和while循环,两者的核心差异在于条件判断的时机:
| 循环类型 | 条件判断时机 | 循环体最少执行次数 |
|---|---|---|
| while循环 | 先判断条件,再执行循环体 | 0次 |
| do while循环 | 先执行循环体,再判断条件 | 1次 |
适用场景说明
do while更适合需要先执行一次操作再判断是否继续的场景,比如用户输入校验:先让用户输入内容,再判断输入是否合法,如果不合法就再次提示用户输入,这种场景下用do while写代码会更简洁,不需要在循环外重复写一次输入逻辑。
注意:使用do while时要避免循环条件永远为真的情况,否则会形成死循环,导致程序无法正常运行。
总结
do while是C语言中先执行后判断的循环结构,循环体至少执行一次,语法上要注意while后的分号不能省略。它和while循环的核心差异是条件判断的时机不同,大家可以根据实际场景选择合适的循环类型,需要至少执行一次循环体的场景优先选择do while即可。