练习1:明天小兰就要登台演出了,老师说再把明天的演出的歌曲唱一遍,如果满意,小兰就可以回家了.否则就需要再练习一遍,直到老师满意为止.(yes / no)
//循环体:老师不停提问,小兰不停回答
//循环条件:老师满意(yes)
string answer = "";//声明变量在do-while外面 避免判断条件时访问不到
do
{
Console.WriteLine("老师,这遍我唱的你满意了嘛?yes/no");//老师提问
answer = Console.ReadLine();//小兰回答
} while (answer == "no");//回答no 继续执行循坏
Console.WriteLine("OK,你可以回家了");//回答yes
Console.ReadKey();
练习2:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出
//循环体:提示用户输入数字并打印自身的二倍
//循环条件:输入的内容为不等于q
string input = "";//声明在do外面 利于后续类型转换以及条件判断
do
{
Console.WriteLine("请输入一个数字,我们将打印他的二倍");//提示用户输入数字
input = Console.ReadLine();//接收用户输入
if (input != "q")//当用户输入不等于q时
{
int number = int.Parse(input);//把用户输入的数字转换为int类型
Console.WriteLine(number * 2);//打印输入数字的二倍
}
} while (input != "q");//用户输入为q 跳出循坏
Console.ReadKey();
练习3:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值
//循环体:提示用户输入数字并输出最大值
//循环条件:输入的内容不等于end
int max = 0;//声明最大值初始为0
string input = "";
do
{
Console.WriteLine("请输入一个数字,输入end我们将显示最大值");//提示用户输入数字
input = Console.ReadLine();//接收用户输入
if (input != "end")//当输入不是end
{
int number = int.Parse(input);//把用户输入的数字转换为int类型
if (number > max)//判断输入的数字大小
{
max = number;//如果输入的数字比max大 就把number赋值给max
}
}
} while (input != "end");
Console.WriteLine(max);//输出用户输入的最大值
Console.ReadKey();
练习4:要求用户输入用户名和密码,只要不是12207568、19991020就一直提示用户名或密码错误,请重新输入。
//循环体:提示用户输入用户名和密码
//循环条件:用户名不等于12207568、密码不等于19991020
string userName = "";//声明用户的姓名为空
string userpwd = "";//声明用户的密码为空
do
{
Console.WriteLine("请输入用户名");//提示输入用户名
userName = Console.ReadLine();//接收用户输入
Console.WriteLine("请输入密码");//提示输密码
userpwd = Console.ReadLine();//接收用户输入
} while (userName!="12207568"||userpwd!="19991020");//循环的两个条件 不确定逻辑与逻辑或可以代入测试
Console.WriteLine("登录成功");
Console.ReadKey();
备注:do-while循环
语法:
do
{
循环体;
}while(循环条件);
执行过程:程序首先会执行do中的循环体,执行完成后,去判断do-while循环的循环条件,
如果成立,则继续执行do中的循环体,如果不成立,则跳出do-while循环。
特点:先循环,再判断,最少执行一遍循环体。