概述
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
结束当次的循环,直接进入下一次循环
发表评论
登录用户才能发表评论, 请 登 录 或者 注册