do while
语法:
do
{
循环体;
}
While (条件); //记住有分号
{
}
执行过程:
1)执行循环体 执行完循环休息转向2
2)判断条件是否成立,如果 条件为true.刚转向1 如果条件为False 则转向3
3)跳出循环体 结束
假如循环体一开始就不成立,对天while循环一次都不执行,对于do-while循环体会执行一次,所以do-while的循环体一般至少会执行一次,
while 先判断后执行
do while 先执行后判断
例1:
string answer;
do
{ Console.WriteLine("小兰表演一遍舞蹈!"); Console.WriteLine("老师你满意吗 (y / n)"); //循环体 answer=Console.ReadLine();}while (answer!="y"); //循环条件
Console.WriteLine("跳得不错。回家吧");
Console.ReadKey();
例2 嵌入了一个 while循环 (来限定只能输入y n)
string answer;
do { Console.WriteLine("小兰表演一遍舞蹈!"); Console.WriteLine("老师你满意吗 (y / n)"); answer=Console.ReadLine();while (answer!="y"&&answer!="n") //嵌入了一个while循环 { Console.WriteLine("只能输入y或者n!"); answer = Console.ReadLine(); } }while (answer!="y"); Console.WriteLine("跳得不错。回家吧"); Console.ReadKey();int sum = 0;
int i = 1; while (i<=100) { sum += i; i++; } Console.WriteLine(sum); Console.ReadKey();
int a = 1, b = 100;
int sum = 0; int i =1 ; while (i<=50) { sum =sum+(a+b); //如果此处改为sum=a+b 可以体会循环的真正用法 因为这样永远是a+b 而没有把每次相加后的结果累加起来. a++; b--;i++;
}Console.WriteLine("{0}", sum);
Console.ReadKey();
2种写法
string userName;
string passWord; do { Console.WriteLine("请输入用户名"); userName = Console.ReadLine(); Console.WriteLine("请输入密码"); passWord = Console.ReadLine(); if (userName != "admin" || passWord != "888888") { Console.WriteLine("错误请重新输入"); } } while (userName != "admin" || passWord != "888888"); Console.WriteLine("输入正确"); Console.ReadKey();
string userName;
string passWord; bool flag = false; do { flag = false; Console.WriteLine("请输入用户名"); userName = Console.ReadLine(); Console.WriteLine("请输入密码"); passWord = Console.ReadLine(); if (userName != "admin" || passWord != "888888") { Console.WriteLine("错误请重新输入"); flag = true; } } while (flag); Console.WriteLine("输入正确"); Console.ReadKey();string stuName;
do
{ Console.WriteLine("请输入学生姓名"); stuName = Console.ReadLine();} while (stuName != "q");
{ Console.WriteLine("程序结束"); } Console.ReadKey();
int number;
bool flag = false; do { try { Console.WriteLine("请输入一个数字"); number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0}的2倍是:{1}", number, number *2); flag = true; } catch { flag = false;}
}while (flag);
{Console.WriteLine("程序结束");
}Console.ReadKey();
int number;
string input; Console.WriteLine("请输入一个数字。(q)结束"); input = Console.ReadLine(); while (input != "q") { number = Convert.ToInt32(input); Console.WriteLine("{0}的双倍是:{1}",number,number*2); Console.WriteLine("请输入一个数字。(q)结束"); input = Console.ReadLine(); }Console.WriteLine("程序结束");
Console.ReadKey();
int max = 0;
string input = ""; int number = 0;
do
{ try { Console.WriteLine("请输入一个数"); input = Console.ReadLine(); number = Convert.ToInt32(input); if (number > max) { max = number; } } catch { if (input != "end") { Console.WriteLine("输入非法数字!程序结束"); input = "end";}
}
} while (input != "end");
{}
Console.WriteLine("最大值:{0}",max);
Console.ReadKey();
do { try { Console.WriteLine("请输入一个数"); input = Console.ReadLine(); number = Convert.ToInt32(input); if (number > max) { max = number; } } catch { if (input != "end") { Console.WriteLine("输入非法数字!程序结束"); input = "end";
}
}
} while (input != "end");
{}
Console.WriteLine("最大值:{0}", max);
Console.ReadKey();