CodeGym /课程 /C# SELF /do-while循环:入门和使用细节

do-while循环:入门和使用细节

C# SELF
第 4 级 , 课程 3
可用

1. 认识一下 do-while 循环

来,先想象一下:你要写个程序,猜用户心里想的数字。你得让程序至少一次问用户输入数字,然后只要没猜中就一直问下去。但如果一开始条件就不成立,普通的while根本不会进循环体。

这时候do-while循环就派上用场了。和while不一样,它无论如何都会先执行一次循环体——就算条件一开始就是假的。就像你买不买东西都能免费拿到口香糖一样。

do
{
    // 循环体:这段代码至少会执行一次
}
while (条件);
do-while循环的语法

注意分号;在条件括号后面!普通的while后面没有分号,这里却有。新手很容易踩坑哦 :)

do-while循环的步骤说明

  1. 进入循环体(至少一次)。
  2. 检查条件。
  3. 如果条件为真——再执行一次循环体。
  4. 如果条件为假——跳出循环。

2. 和普通 while 的区别

回忆一下普通while的基本用法:

while (条件)
{
    // 循环体
}

如果条件一开始就是假的,循环体一次都不会执行!

再来看do-while的例子:

do
{
    // 循环体
}
while (条件);

就算条件一开始就是假的,循环体也会至少执行一次!

用代码来举个例子:

// 普通while
int count = 0;
while (count > 0)
{
    Console.WriteLine("count = " + count);
    count--;
}
// 什么都不会输出

// do-while
int count2 = 0;
do
{
    Console.WriteLine("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// 会输出 "count2 = 0",虽然条件一开始就是假的!

有时候这种行为看起来有点“奇怪”,但有时候正是这种特性救了你的代码(比如做用户输入和数据校验的时候)。

3. do-while 的实际应用场景

这个循环最常见在哪些地方?

数据校验

最常见的场景——你想让用户输入点靠谱的东西(比如只能输入数字,或者密码不能少于6位),只要输入不对就一直让他重输。

string password;
do
{
    Console.Write("输入新密码(至少6个字符): ");
    password = Console.ReadLine();
}
while (password.Length < 6);

Console.WriteLine("密码已接受!");

在这个例子里,无论用户第一次就输对还是输错,循环体都会至少执行一次。

控制台程序里的菜单

很常见也很实用的套路:显示菜单,等用户输入命令,只有输入特定命令才退出循环。

string command;
do
{
    Console.WriteLine("菜单:");
    Console.WriteLine("1. 显示问候语");
    Console.WriteLine("2. 退出");
    Console.Write("请选择操作: ");
    command = Console.ReadLine();

    if (command == "1")
    {
        Console.WriteLine("你好,世界!");
    }
    else if (command != "2")
    {
        Console.WriteLine("未知命令。");
    }
}
while (command != "2");

Console.WriteLine("拜拜!");

4. while 和其他循环的对比

循环类型 条件检查时机 循环体可能执行次数 适用场景
while 之前 0次或多次 当你事先不知道要循环多少次
do-while 之后 1次或多次 至少要执行一次的时候
for 之前 0次或多次 已知循环次数的时候
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION