选择逻辑-if
一路选择
if
的语法规则:先执行if
的逻辑运算。如果结果为true
就执行if
中的代码。如果结果为false
就不执行if
中的代码。if (逻辑运算) { // 代码 }
// 登录Demo string id = Console.ReadLine(); string pwd = Console.ReadLine(); // 验证密码 if (id == "likang" && pwd == "shuaige") { Console.WriteLine("欢迎likang!"); }
二路选择
else
的语法规则:如果else
之前if
都判断为false
,就执行else
中的代码。if (逻辑运算) { // 代码1 } else { // 代码2 } // 先执行if的逻辑运算。如果结果为true就执行代码1。如果结果为false就执行代码2。
// 登录Demo string id = Console.ReadLine(); string pwd = Console.ReadLine(); // 验证密码 if (id == "likang" && pwd == "") { Console.WriteLine("欢迎likang!"); } else { Console.WriteLine("登录失败!"); }
多路选择
- 如果
if
或else
中只有一个语句,可以省略其后的{}
。 else
里还可以再嵌套if-else
。if (id == "likang" && pwd == "123") { Console.WriteLine("欢迎likang!"); } else if (id == "lixiangzhi" && pwd == "456") { Console.WriteLine("欢迎lixiangzhi!"); } else if (id == "lisuo" && pwd == "789") { Console.WriteLine("欢迎lisuo!"); } else { Console.WriteLine("登录失败!"); }
可以把
else if
理解为一个else
分支中有一个if
判断。- 如果是
else
结尾的选择逻辑,那么一定会有一路分支被执行。 - 如果没有最后一个
else
,有可能任何一个分支都不执行。 if-else
与三目运算?:
是有本质区别的。三目运算是运算符,可以用来赋值,而if-else
是逻辑控制语句。
if - else的匹配
- 选择分支只有三种方式开头
if
else
else if
。 if
表示一个新的选择逻辑的开始。else
不能单独存在,它和之前的if
一起形成一个选择逻辑。- 当选择了一条分支后,选择逻辑就不会去判断其他的分支了。
if (id == "likang" && pwd == "123") { Console.WriteLine("欢迎likang!"); } if (id == "lixiangzhi" && pwd == "456") { Console.WriteLine("欢迎lixiangzhi!"); } if (id == "lisuo" && pwd == "789") { Console.WriteLine("欢迎lisuo!"); } // 这样写执行效果也对,但效率低了。 // 这里有三个if语句,表示有三个选择逻辑。 // 当第一个if判断为true后,后面两个if还会继续判断。
总结
- 可以把
if
和else
分开来看。 if
用来确定是否执if
中的代码。else
表示前面的if
判断都为false
,就会执行else
中的代码。