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的逻辑顺序。