1.if 语句
1)if语句的基本语法形式
表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。在C语⾔中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果是不是0,则语句执行。流程示意图如下:
例:输⼊⼀个整数,判断是否为奇数
![](https://i-blog.csdnimg.cn/blog_migrate/06caceacbc667b2db6bec2ab54acab1e.png)
2)else
如果⼀个数不是奇数,那就是偶数了,如果任意⼀个整数,我们要清楚的判断是奇数还是偶数怎么表示呢?这里就需要 if...else... 语句了,语法形式如下:
![](https://i-blog.csdnimg.cn/blog_migrate/dd712b36f03a485f4f3bfb8ac617cdc4.png)
例:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印数偶数。
3) 嵌套if
在
if else
语句中,
else
可以与另⼀个
if
语句连⽤,构成多重判断。
例:要求输入⼀个整数,判断输⼊的整数是0,还是正数或者负数
![](https://i-blog.csdnimg.cn/blog_migrate/a05bbc70235693375d8ed0dff2e51051.png)
对比一下,上面这段代码与下面的代码表达的意思完全相同。
试想一下,如果让你编写以下代码,那么使用传统的if+ else+大括号,那么将变得超级烦。
输⼊⼀个⼈的年龄
如果年龄
<
18
岁,打印
"
少年
"
如果年龄在
18
岁⾄
44
岁打印
"
⻘年
"
如果年龄在
45
岁⾄
59
岁打印
"
中⽼年
"
如果年龄在
60
岁⾄
89
岁打印
"
⽼年
"
如果
90
岁以上打印
"
⽼寿星
"
![](https://i-blog.csdnimg.cn/blog_migrate/4762d71f0cb827427cb737b3e2826add.png)
。。。。。。
但嵌套if的优势就体现出来了:
![](https://i-blog.csdnimg.cn/blog_migrate/63eeb27dcf608dd6fe157d0c2c4fa3c0.png)
是不是简单又清晰?
以上就是嵌套if语句的语法,有了嵌套if语句,就可以完成更多复杂逻辑的判断。
4)if语句易错点
1.在 if 和 else 语句中默认都只控制⼀条语句,如果要控制多条语句,请加大括号!
2.if()里判断是否相等绝对不能写= ,必须写==,不然就变成赋值了,永远也判断不出来
3.如果有多个 if 和 else ,记住这样⼀条规则, else 总是跟最接近的 if 匹配
2.switch 语句
1)switch语句的基本语法形式
上面代码中,根据表达式
expression
不同的值,执行相应的
case
分支。如果找不到对应的值,
就执行
default
分⽀。
2)switch语句易错点
1.switch 后的 expression 必须是整型表达式,不能写小数
2.case 后的值,必须是整形常量表达式,不能含小数
3.case 和后边的数字之间必须有空格
4.每⼀个 case 语句中的代码执行完成后,需要加上 break ,不然跳不出这个switch语句。
3.if语句和switch语句的对比
例:输⼊任意⼀个整数值,计算除3之后的余数
if用法:
![](https://i-blog.csdnimg.cn/blog_migrate/977c9b61bc83d75317eed99d7f3ef464.png)
switch用法:
![](https://i-blog.csdnimg.cn/blog_migrate/844df7b56c6b887bebdbb614d52824ba.png)
二者的本质是一样的,都是分支语句,只是表达形式不同。
那什么时候用if好,什么时候用switch好呢?
1.如果分支少,首选if
2.分支多时,用if 嵌套 或 switch
3.在第二种情况下,如果分支是某个范围,用if嵌套;如果分支是某个具体的值,用switch(也可以用if嵌套,但switch只用写一次表达式语句,简单清晰一些)
4.含小数,
用if