精典示例——if语句嵌套
精典示例1——提示用户名名和密码是否正确
例1:提示用户输入用户名,然后再提示输入密码。如果用户名是"admin"并且密码是“888888”则提示正确,否则提示错误,如果用户名不是admin还提示用户名不存在。
写法1:
[csharp] view plaincopyprint?
namespace 布尔表达式
{
class Program
{
static void Main(string[] args)
{
//提示用户输入用户名,然后再提示输入密码,如果用户名是"admin"并且密码是“888888”则提示正确,否则提示错误。如果用户名不是admin还提示用户名不存在。
Console.WriteLine("请输入用户名:");
string userName = Console.ReadLine();
Console.WriteLine("请输入密码:");
string passWord = Console.ReadLine();
if (userName == "admin" && passWord == "888888")
{
Console.WriteLine("用户名和密码输入正确!");
}
else
{
Console.WriteLine("用户名、密码错误!");
if (userName != "admin")
{
Console.WriteLine("用户名不存在!");
}
}
Console.ReadKey();
}
}
}
写法2:
[csharp] view plaincopyprint?
namespace 布尔表达式
{
class Program
{
static void Main(string[] args)
{
//提示用户输入用户名,然后再提示输入密码,如果用户名是"admin"并且密码是“888888”则提示正确,否则提示错误。如果用户名不是admin还提示用户名不存在。
Console.WriteLine("请输入用户名:");
string userName = Console.ReadLine();
Console.WriteLine("请输入密码:");
string passWord = Console.ReadLine();
if (userName == "admin" && passWord == "888888")
{
Console.WriteLine("用户名和密码输入正确!");
}
else
{
if (userName != "admin"&&passWord=="888888")
{
Console.WriteLine("此用户名不存在!");
}
else
{
if (userName=="admin"&&passWord != "888888")
{
Console.WriteLine("密码不正确!");
}
else
{
Console.WriteLine("用户名和密码都不正确!");
}
}
}
Console.ReadKey();
}
}
}
用户名(admin) | 密码(888888) | 提示信息 |
√ | √ | 用户名和密码输入正确! |
√ | × | 密码不正确! |
× | √ | 此用户名不存在! |
× | × | 用户名和密码都不正确! |
精典示例2——提示用户名输入年龄,判断是否允许查看
练习2:提示用户输入年龄.如果大于等于18.则告知用户可以查看.如果小于10岁,则告知不允许查看.如果大于等于10岁.则提示用户是否继续查看 (yes、no)·如果输入 的是yes则提示用户可以查看,否则提示不可以查看。(测试边界条件,-1,88888888888888888888888,aaaa。微软如狼似虎的Tester)
条件 | 提示信息 |
age>=18 | 可以查看 |
age<10 | 不允许查看 |
yes
age>=10 no
输入其它 | 继续查看
不继续查看
输入错误 |
代码示例:
[csharp] view plaincopyprint? namespace 布尔表达式 { class Program { static void Main(string[] args) { //提示用户输入年龄.如果大于等于18.则告知用户可以查看.如果小于10岁,则告知不允许查看.如果大于等于10岁.则提示用户是否继续查看 (yes、no)·如果输入 的是yes则提示用户可以查看,否则提示不可以查看。 Console.WriteLine("请输入年龄:"); string strAge = Console.ReadLine(); int age = Convert.ToInt32(strAge); if (age>=18) { Console.WriteLine("可以查看"); } else if (age < 10) { Console.WriteLine("不允许查看"); } else //前两个条件已经将其他情况排除,所以不用再写else if(age>=10) { Console.WriteLine("是否继续查看(yes、no)?"); string isContinue=Console.ReadLine(); if (isContinue=="yes") { Console.WriteLine("继续查看"); } else if (isContinue == "no") { Console.WriteLine("不继续查看"); } else { Console.WriteLine("输入错误!"); } } Console.ReadKey(); } } }
总结,上面的两个例子主要练习的是:
if语句的嵌套
变量名命名要用有意义的变量名(如例中的变量名strAge,isContinue)。
测试程序,每种分支都要测试一遍。
写注释(关键地方),这样代码看起来很清淅,易于别人读懂。