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