一、if语句
(1)语法结构
单分支:1、 if(表达式)
语句;
1表示如果表达式为真则执行语句,否则什么也不执行。
2、if(表达式)
语句1;
else
语句2;
2表示如果表达式为真则执行语句一,如果表达式为假则执行语句2.
多分支:if(表达式1)
语句1;
else if(表达式2)
语句2;
............
else 语句n;
注意:使用if语句时,判断变量是否落在某个数值范围内,不能写成10<a<20,而应该使用&&或者||
解释18<a<50可以看成(18<a)<50,a=51时,18<a为真就是1,原语句就成1<50了,所以走的是else if语句
(2)if语句处理两条或多条语句时要引入花括号
复合语句是由一对花括号,以及花括号内生命和语句混合而成
(3)else悬空问题
C语言遵循的规则是else与离它最近且未匹配的if相匹配
无论与哪个if对齐,else都与第二个if进行匹配,结果无法输出值。解决方法就是加上括号将else与第一个if进行匹配
二、switch语句
(1)语法结构 switch(表达式)
{case 整型常量表达式:语句
case 整型常量表达式:语句
.............
case 整型常量表达式:语句
default:语句}
●控制表达式。switch 后边必须跟着由圆括号括起来的整型表达式。C语言把字符当成整数来处理,因此在switch语句中可以对字符进行判定。但是,这不适用于浮点数和字符串。
●分支标号。每个分支的开头都有一一个标号,格式:case 常量表达式:
● 常量表达式很像普通的表达式,只是不能包含变量和函数调用。因此,5是常量表达式,5+10也是常量表达式,但n+10不是常量表达式(除非n是表示常量的宏)。分支标号中常量表达式的值必须是整数(字符也可以)。
●语句。每个分支标号的后边可以跟任意数量的语句,并且不需要用花括号把这些语句括)起来。)每组语句的最后一条通常是break语句。
(break语句会导致程序”跳出“switch语句,继续执行switch语句之后的语句。但是也不是全部都必须加break)
C语言不允许有重复的分支标号,但对分支的顺序没有要求,特别是default分支不一定要放置在最后。
case后边只可以跟随一个常量表达式。
理解switch语句
最后输出m=5,n=3(当执行到case3是n=2,此时就跳过了第二个switch中的case1,执行case2)
三、条件运算
条件运算符的优先级高于赋值运算符,但低于其他运算符
1、一般格式:条件?条件满足时的值:条件不满足时的值;