摘要
关系表达式、逻辑表达式、分支结构的总结:if-else、if-else if-else、switch-case
一、关系运算符
>,==,<…
关系表达式的结果是bool类型,true或false
二、逻辑表达式
1.逻辑表达式
逻辑与:&&:逻辑与两边的表达式都为真,最后才为真
逻辑或:||:逻辑或两边的表达式任意一个为真,最后为真
非:!:相反的值
2.练习:计算闰年
由两个大条件组成:1).能被400整除 2).或者是:能被4整除但是不能被100整除
int year = 1824; if((year % 400 ==0) || (year % 4 ==0 && year % 100 != 0 )) { Console.WriteLine($"{year}是闰年"); } else { Console.WriteLine($"{year}不是闰年"); }
3.与或的短路
逻辑与&&:当第一个不成立的时候,不会再进行后面表达式的校验
逻辑或||:当第一个成立的时候,不会再进行后面表达是的校验
如:
int a = 5;
int b = 10;
int result = ++a > 50 && ++b > 1;
运算完成,a为6,b为10,因为&&左边表达式不成立,不会再运算右边的表达式
三、分支结构
1.if-else语句
if(条件1)
{
代码块1
}
else
{
代码块2
}
解释:如果条件1满足执行代码块1,不执行代码块2
如果条件1不满足,跳过代码块1,只执行代码块2
2.if-else if-else语句
if(条件1)
{
语句块1
}
else if(条件2)
{
语句块2
}
else if(条件3)
{
语句块3
}
else
{
语句块4
}
语句块5
执行逻辑:
先判断条件1,如果条件1成立,执行语句块1,然后不执行后面的else if 及里面的语句块;如果条件1不成立,进入到下面的else if,判断条件2,如果条件2成立,执行语句块2,否则执行后面else if;前面所有的if都不成立才会去执行else中的语句块4。
不管前面的条件如何,都回去执行语句块5。
3.switch-case语句
string level = "字符";
switch(level)
{
case "qwr":
//做操作
break;
case "字符":
break;
case "asd":
break;
…
default:
break;
}
用switch后面括号中的变量,与case中的值去匹配,如果匹配上就执行后面的代码,执行到break,后面的就不执行了;如果case后面的一个也没匹配上,就执行default后面的代码,执行到break结束。
PS:break代表跳出此语句结构(switch-case)
PS:default的位置和执行顺序没关系,如果default放到最前面,也是最后执行
PS:如果不写break,会出现贯穿的情况,就是会继续去往后执行
4.switch-case的case可以合写
当变量等于某一个值,且需要执行相同的操作时,case可以共用
如:
switch(变量)
{
case "A":
case "B":
//To-do
break;
case "C":
case "D":
case "E":
//To-do
break;
default:
break;
}