do...while语句

1444 更新于: 2021-07-16 读完约需 8 分钟

概述

C#语言中的do…while循环与while循环类似,只是do…while代码块将至少执行一次,因为它首先执行代码块,然后检查条件是否需要继续循环执行。

C#语言中的do…while语法结构为:

do
{
    //代码块(逻辑代码)
} while(布尔表达式);

如上语法结构所示,do…while循环以关键字do开头,后面紧跟以一对花括号包裹的逻辑代码块。再接while关键字和一对中括号包含的布尔表达式,最后以一个分号结束。

int i = 0;
do
{
    Console.WriteLine("i = {0}", i);
    i++;
} while (i <= 5);

输出结果为:

i = 0
i = 1
i = 2
i = 3
i = 4
i = 5

试一试

将上例中的while (i <= 5) 改成 while (i <= 0),输出结果是什么呢?

int i = 0;
do
{
    Console.WriteLine("i = {0}", i);
    i++;
} while (i <= 0);

生活示例

猜数字游戏,程序随机取一个指定区间的数字,用户猜。猜中则游戏结束,否则一直猜。

使用C#语言的do…while循环语句实现代码示例如下:

Random random = new Random();
int number = random.Next(0,11);
int counter = 0;
bool correct = false;
do
{
    Console.WriteLine("请输入一个1到10之间的数字:");
    int input = int.Parse(Console.ReadLine());
    counter++;
    if (input == number)
    {
        correct = true;
        Console.WriteLine("恭喜你,正确数字为:{0}",number);
    }
    else
    {
        Console.WriteLine("不正确,继续猜...");
    }
} while (!correct);
Console.WriteLine("你一共猜了{0}次",counter);
Console.ReadLine();

输出结果:

请输入一个1到10之间的数字:
5
不正确,继续猜...
请输入一个1到10之间的数字:
6
不正确,继续猜...
请输入一个1到10之间的数字:
7
不正确,继续猜...
请输入一个1到10之间的数字:
1
恭喜你,正确数字为:1
你一共猜了4次

是否开启提示功能—判断用户猜的是大于还是小于这个数,以缩小范围
如何使用break重构这个循环体
如何使用continue重构这个循环体

体验改进版本代码示例

使用C#语言的do…while循环语句实现的体验改进版本代码示例如下:

//开启提示功能
Random random = new Random();
Console.WriteLine("输入猜数范围的最大值:");
int maxValue = int.Parse(Console.ReadLine());
int number = random.Next(0, maxValue + 1);
int counter = 0;
bool correct = false;
bool openTip = false;
Console.WriteLine("是否开启提示?[输入1表示开启]:");
openTip = Console.ReadLine() == "1";
Console.WriteLine("提示功能【{0}】", openTip ? "已开启" : "已关闭");
do
{
    Console.WriteLine("请输入一个1到{0}之间的数字:",maxValue);
    int input = int.Parse(Console.ReadLine());
    counter++;
    if (input == number)
    {
        Console.WriteLine("恭喜你猜对了,正确数字为:{0}", number);
        correct = true;
    }
    else
    {
        Console.WriteLine("不正确,继续猜...");
    }
    if (openTip)
    {
        if (input < number)
        {
            Console.WriteLine("小了");
        }
        if (input > number)
        {
            Console.WriteLine("大了");
        }
    }
} while (!correct);
Console.WriteLine("你一共猜了{0}次", counter);
Console.ReadLine();

输出结果:

输入猜数范围的最大值:
100
是否开启提示?[输入1表示开启]:
1
提示功能【已开启】
请输入一个1到100之间的数字:
50
不正确,继续猜...
大了
请输入一个1到100之间的数字:
25
不正确,继续猜...
大了
请输入一个1到100之间的数字:
12
不正确,继续猜...
小了
请输入一个1到100之间的数字:
15
不正确,继续猜...
小了
请输入一个1到100之间的数字:
20
不正确,继续猜...
大了
请输入一个1到100之间的数字:
18
不正确,继续猜...
大了
请输入一个1到100之间的数字:
16
不正确,继续猜...
小了
请输入一个1到100之间的数字:
17
恭喜你猜对了,正确数字为:17
你一共猜了8次

小结

  • do…while循环至少执行循环体一次
  • 可以循环体内嵌套do…while循环
  • 可以使用关键字break退出/结束当前的循环体
  • 可以使用关键字continue结束当次的循环,直接进入下一次循环

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

本文永久链接码友网 » C#程序设计基础(入门篇) » do...while语句 分享:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册