目录
一.if语句
1.if
在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果是不是0,则语句执⾏。
2.else
这里输入a,如果a>=60,则输出及格了,否则输出不及格。
3.分⽀中包含多条语句
默认在 if 和 else 语句中默认都只控制⼀条语句,像上面的那个语句一样。
if 语句只能控制⼀条语句,是独⽴存在的。那如果我们要if语句同时控制2条语句,那就要使⽤ {} 将代码括起来,else 后也可以跟上⼤括号。
4.嵌套if
在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。
else if (num>0) 就是嵌套if。
5.悬空else问题
如果有多个 if 和 else , else 总是跟最接近的 if 匹配。简单的说就是就近原则。
这就是悬空 else 的问题,如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近
的 if 匹配。
注意 :如果我们希望else确实和第⼀个if匹配,可以这样修改代码:
二.关系操作符
(1) > ⼤于运算符
(2) < ⼩于运算符
(3) >= ⼤于等于运算符
(4) <= ⼩于等于运算符
(5) == 相等运算符
(6) != 不相等运算符
关系表达式通常返回 0 或 1 ,表⽰真假。
注意 :相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符。
多个关系运算符不宜连⽤。要用逻辑操作符。
三.条件操作符
条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果
exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
四.逻辑操作符:&& , || , !
1.与运算符&&
&& 就是与运算符,也是并且的意思, && 是⼀个双⽬操作符,使⽤的⽅式是 a&&b , && 两边的表达式都是真的时候,整个表达式才为真,只要有⼀个是假,则整个表达式为假。
2.或运算符||
|| 就是或运算符,也就是或者的意思, || 也是⼀个双⽬操作符,使⽤的⽅式是 a || b , ||两边的表达式只要有⼀个是真,整个表达式就是真,两边的表达式都为假的时候,才为假。
3.逻辑取反运算符 !
如果 flag 为真, !flag 就是假,如果 flag 为假, !flag 就是真。所以上⾯的代码的意思就是 flag 为假,执⾏if语句中的代码。
4.短路
它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。
简单的说就是:
(1)if(a >= 3 && a <= 5) ,当a >= 3(左边操作数)的结果为0的时候,右边操作数就不再执⾏。
(2) if(a == 1 || a==2 || a == 3),如果a == 1,则不⽤再判断a是否等于2或者3,整个表达式的结果也是1。 所以, || 操作符的左操作数的结果不为0时,就⽆需执⾏右操作数。
五.switch 语句
1.switch
除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。执⾏相应的 case 分⽀。如果找不到对应的值,就执⾏ default 分⽀。
注意 :
switch 后必须是整型表达式
case 后的值必须是整形常量表达式
2.switch语句中的break
switch 语句也是分⽀效果的,只有在 switch 语句中使⽤ break 才能在跳出 switch 语
句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续玩下执⾏,有可能执⾏其他 case
语句中的代码,直到遇到 break 语句或者 switch 语句结束。
3.switch语句中的default
在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹 配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊default⼦句。
4.switch语句中的case和default的顺序问题
switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。 不过通常是把 default ⼦句放在最后处理的。
QAQ
谢谢大家的关注和点赞