if(一个返回bool值的条件表达式)
{
程序块
}
else{}
它的执行过程我们可以通过一个程序来了解
1 static void Main(string[] args)
2 {
3 if (score >= 90) // 条件1
4 {
5 Console.WriteLine("A");
6 }
7 else if (80 =< score && score < 90) //条件2 这里的score<90根本不执行,没有理解if else if的本质
8
9 {
10 Console.WriteLine("B");
上面的写法实际上没有理解if else if的本质(下划线为错误的判断条件)
if else if的本质是:如果if条件不满足则执行Else中的条件判断。基于这个理解,上面的if语句条件1不满足的话,实际上就意味着score《90
所以条件2中的子条件score<90是多次一举!或者else if (score<90 && score <=80) ,这里的Score<90 在条件1为假后,肯定为真!
提示用户输入用户名,然后再提示用户输入密码,如果用户名是"admin"和密码是"888888",那么提示正确
否则,如果用户名不是Admin,则提示用户名不存在,如果用户名是Admin则提示密码不正确.
1 static void Main(string[] args)
2 {
3 Console.WriteLine("请输入用户名");
4 string username = Console.ReadLine();
5
6 Console.WriteLine("请输入密码");
7 string password = Console.ReadLine();
8
9 if (username == "admin" &&
10 password == "888888")
11 {
12 Console.WriteLine("密码正确");
13 }
14 else
15 {
16 if (username != "admin")
17 {
18 Console.WriteLine("用户名不正确");
19 }
20 else if (password != "888888")
21 {
22 Console.WriteLine("密码不正确");
23 }
24 }
25
26 Console.ReadKey();
27
28 }
上面的写法,是Else里面嵌套了If Else。下面采用另外一种写法,是If Else If Else
1 static void Main(string[] args)
2 {
3 Console.WriteLine("请输入你的用户名");
4 string username = Console.ReadLine();
5
6 Console.WriteLine("请输入你的密码");
7 string password = Console.ReadLine();
8
9
10 // 下面的If Else If Else 可以成对理解,比如else if else 还是可以作为一个来理解
11 if (username == "admin" && password == "888888")
12 {
13 Console.WriteLine("用户名和密码正确");
14 }
15 else if (username != "admin")
16 {
17 Console.WriteLine("用户名不正确");
18 }
19 else // 注意理解上面If Else If
20 {
21 Console.WriteLine("密码不正确");
22 }
23
24 Console.ReadKey();
25 }
26 }
If Else 语句是否使用{}
通常if表达式后只有一个语句的话,不使用{}.同样的下面的形式却有不同的结果.
1 if (true)
2 string test ="test"; // 这个会发生编译错误!
3
4 if (true)
5 {
6 string test = "test"; // 这样子的写法正确
7 }
Else与靠近If结合
如果if 表达式后面只有一个语句,通常会不写{},但是这个习惯也可能导致程序出现错误;其实在实际情况下,通常以为自己会If Else,但是实际上If Else的组合起来可以构造非常复杂的业务逻辑.而且好的If Else组合一看就明白业务含义,但是差的If Else就容易误导或者非常难理解这段If Else的含义.最主要要理解if else的逻辑顺序。