C#中的do while循环属于后测试循环结构,它的核心特点是循环体至少会被执行一次,然后再判断循环条件是否成立,这和先判断条件的while循环有明显区别。这种特性让do while循环非常适合需要先执行一次操作再校验条件的场景。

do while循环的基础语法
do while循环的语法结构非常固定,由do关键字、循环体、while关键字和循环条件组成,具体格式如下:
// do while循环基础语法
do
{
// 循环体代码,至少执行一次
循环体语句;
} while (循环条件);
需要注意while后面的条件判断语句结尾必须加分号,这是很多初学者容易遗漏的细节,缺少分号会导致编译错误。
do while循环的执行流程
do while循环的执行步骤可以分为三步:
- 第一步:直接执行do后面的循环体内容,不需要提前判断条件
- 第二步:循环体执行完成后,判断while后面的条件是否成立
- 第三步:如果条件为true,回到do处再次执行循环体;如果条件为false,退出循环继续执行后续代码
基础使用示例
下面通过一个简单的计数器示例展示do while循环的使用,这个例子中循环体至少会执行一次,即使初始条件不满足:
using System;
class Program
{
static void Main()
{
int count = 0;
// 初始count为0,条件count < 0不成立,但循环体仍会执行一次
do
{
Console.WriteLine($"当前计数:{count}");
count++;
} while (count < 0);
Console.WriteLine("循环结束");
}
}
执行上述代码后,输出结果会是:
当前计数:0 循环结束
可以看到即使循环条件一开始就不成立,循环体还是执行了一次,这就是后测试循环的核心特性。
do while和while循环的差异对比
很多开发者会混淆do while和while循环的使用场景,两者的核心差异如下:
| 对比项 | do while循环 | while循环 |
|---|---|---|
| 测试时机 | 循环体执行后测试条件 | 循环体执行前测试条件 |
| 循环体执行次数 | 至少执行1次 | 可能执行0次 |
| 适用场景 | 需要先执行操作再判断条件的场景 | 先判断条件再执行操作的场景 |
常见使用场景
do while循环最常见的使用场景是用户交互类的逻辑,比如要求用户输入指定格式的内容,直到输入正确为止,这种场景下至少需要让用户先输入一次:
using System;
class Program
{
static void Main()
{
int userInput;
do
{
Console.WriteLine("请输入一个1到10之间的整数:");
// 尝试将用户输入转换为整数,转换失败则默认值为0
if (!int.TryParse(Console.ReadLine(), out userInput))
{
userInput = 0;
}
} while (userInput < 1 || userInput > 10); // 输入不在范围内则重复输入
Console.WriteLine($"你输入的有效数字是:{userInput}");
}
}
这个示例中用户至少会输入一次内容,只有当输入的数字在1到10之间时才会退出循环,完美契合do while循环的特性。
使用注意事项
使用do while循环时需要注意避免死循环,和所有循环结构一样,如果while后面的条件永远为true,循环就会一直执行不会退出:
// 错误示例:死循环,条件永远为true
int num = 0;
do
{
Console.WriteLine(num);
// 没有修改num的值,条件num < 5永远成立
} while (num < 5);
要避免这种情况,需要在循环体中修改影响循环条件的变量,确保条件最终会变为false,让循环可以正常退出。
C#do_while循环后测试循环循环结构修改时间:2026-06-25 20:09:24