精典示例——while语句练习
例1:用while语句计算1到100之间的整数的和
代码如下:
[csharp] view plaincopyprint? namespace While循环 { class Program { static void Main(string[] args) { // 计算1到100之间的整数的和 int i=1; int sum=0; while (i <= 100) { sum = sum + i; i++; } Console.WriteLine("{0}", sum); Console.ReadKey(); } } }
练习:断点调试程序
变量的作用域:(以sum为例:sum的作用域就是sum所在的{}内部,sum声明之后。)
例2:要求用户输入用户名和密码,只要不是admin、888888就一直提示要求重新输入。
[csharp] view plaincopyprint?
namespace while练习2
{
class Program
{
static void Main(string[] args)
{
//要求用户输入用户名和密码,只要不是admin、888888就一直提示要求重新输入。
Console.WriteLine("请输入用户名");
string userName=Console.ReadLine();
Console.WriteLine("请输入密码");
string passWord=Console.ReadLine();
/*
while(userName!=admin)//错误,不要写成admin,而是"admin",加上双引号才是字符串,否则认为是变量。
*/
while(userName!="admin"||passWord!="888888")
{
Console.WriteLine("用户名和密码错误,请重新输入");
Console.WriteLine("请输入用户名");
userName = Console.ReadLine();
Console.WriteLine("请输入密码");
passWord = Console.ReadLine();
}
Console.ReadKey();
}
}
}
注意:admin和"admin"看着相似,但是表示不同的意思,admin表示的是变量,加上双引号表示的是字符串。
888888和"888888"也只是形似而已。
分析:逻辑或操作符"||" :有两个操作数,用于判断他们的值是否至少有一个为true。
用户名和密码只要有一个不正确(!=),就提示错误。
userName | passWord | result |
× | × | × |
× | √ | × |
√ | × | × |
√ | √ | √ |
例3:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候,程序退出。
[csharp] view plaincopyprint?
namespace 练习3
{
class Program
{
static void Main(string[] args)
{
/*
//死循环
Console.WriteLine("请输入一个数字");
string s = Console.ReadLine();
while(s!="q")
{
int number = Convert.ToInt32(s);
Console.WriteLine("{0}",number*2);
}
*/
while (true)
{
Console.WriteLine("请输入一个数字");
string s = Console.ReadLine();
if (s == "q")
return;//执行到return就退出了整个函数(Main),while也就不会再继续执行下去了。而控件台程序一旦Main退出,程序就会退出了。
int number = Convert.ToInt32(s);
Console.WriteLine("{0}",number*2);
}
Console.ReadKey();
}
}
}
注意:return,退出整个函数(Main),程序退出。
例4:不断要求用户输入一个数字,当用户输入end的时候显示刚才输入的数字中的最大值。
[csharp] view plaincopyprint?
namespace 练习4
{
class Program
{
static void Main(string[] args)
{
//不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值。设一个变量int max,初始值为0,用户每输入一次就把用户输入的和max比较一下,如果输入的比max大,则让max等于用户输入。
int max=0;
while (true)
{
Console.WriteLine("请输入一个数字(结束请输入end):");
string s = Console.ReadLine();
if (s == "end")
{
Console.WriteLine("刚才输入的最大数是{0}:",max);
Console.ReadKey();
return;
}
int number = Convert.ToInt32(s);
if (number > max) //新的数和max进行比较,诞生了更大的数,max赋值为更大的这个数number
{
max = number;
}
}
}
}
}
练习4主要是练习断点调试。