do-while循环是C#中另一种重要的循环结构,它与while循环的关键区别在于:do-while循环至少会执行一次循环体,然后再检查条件。
1. do-while循环的基本语法
do
{
// 循环体:至少执行一次的代码
} while (条件表达式);
注意:结尾的分号;
是必须的,这是与while循环语法上的重要区别。
2. 简单示例入门
示例1:基础计数循环
int count = 1;
do
{
Console.WriteLine("这是第 " + count + " 次循环");
count++;
} while (count <= 5);
示例2:至少执行一次的菜单系统
string choice;
do
{
Console.WriteLine("请选择操作:");
Console.WriteLine("1. 查看信息");
Console.WriteLine("2. 修改设置");
Console.WriteLine("3. 退出");
choice = Console.ReadLine();
switch (choice)
{
case "1":
Console.WriteLine("显示信息...");
break;
case "2":
Console.WriteLine("修改设置...");
break;
case "3":
Console.WriteLine("谢谢使用!");
break;
default:
Console.WriteLine("无效选择,请重新输入");
break;
}
} while (choice != "3"); // 只有当选择"3"时才退出
3. do-while循环的执行流程
开始
↓
执行循环体
↓
检查条件 → true → 返回执行循环体
↓false
结束循环
4. do-while与while的关键区别
// 示例对比:即使条件一开始就不满足,do-while也会执行一次
// while循环:先判断,条件不满足则不执行
int i = 10;
while (i < 5)
{
Console.WriteLine("这不会执行"); // 不会输出
}
// do-while循环:先执行,再判断
int j = 10;
do
{
Console.WriteLine("这会执行一次"); // 会输出,尽管条件不满足
j++;
} while (j < 5);
6. 常见错误及避免方法
错误1:忘记结尾的分号
// 错误示例
do
{
Console.WriteLine("Hello");
} while (true) // 缺少分号,编译错误
// 正确写法
do
{
Console.WriteLine("Hello");
} while (true); // 必须有分号
错误2:无限循环
// 危险示例:无限循环
do
{
Console.WriteLine("这将无限循环");
} while (true); // 条件永远为true
// 安全示例:有退出机制
bool running = true;
do
{
Console.WriteLine("输入 'exit' 退出:");
string input = Console.ReadLine();
if (input == "exit")
{
running = false;
}
} while (running);