c语言的分支语句
可以使⽤ if 、 switch 实现分⽀结构
一、if语句
1、基本形式:
表达式若为真,则继续运行 {语句}。反之跳过。
注:如啊{语句;}中只有一个语句则{}可省略。 2、例如:
判断一个数时机是奇数还是偶数
二、if...else...语句
else(其他)
1、基本形式
、
注:如果if不成立则运行else中的语句
如判断奇偶数,不是奇数就是偶数。
则可以用以下代码代替:
但是if...else只能判断两种对立的可能性。如果想要判断多种可能性则需要利用嵌套if语句。
2、利用else的嵌套if语句
如果判断一个数是正数、负数还是零(三种情况)单单的if...else不能解决则需要嵌套if语句来实现
例如:
上图中蓝色背景的代码就是嵌套在前⾯的 else ⼦句中的,构成了嵌套的if语句。
如果有超过3种的多种情况可以用以下形式判断:
3、if与else的配对
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
三、switch 语句
switch 语句是⼀种特殊形式的 if...else 结构,用于判断条件有多个结果的情况。它把多重 的 else if 改成更易用、可读性更好的形式。
1、基本形式
• switch 后的表达式 必须是整型表达式
• case 后的常量,必须是整形常量表达式
上⾯代码中,根据switch后表达式 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值, 就执⾏ default 分⽀。
四、switch中的break语句。
例如:
给某为同学数学成绩评级:
90--100 A (含90)
80--90 B(含80)
70--80 C(含70)
60--70 D(含60)
60以下 E
如果没有break语句
可能有人会提出疑问78不应该只打印C吗?为什么还会打印D和E?
其实就是在打印完C后还没有跳出switch语句,代码会继续往下执⾏,有可能执⾏其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。
有break语句
加入break之后就很好的跳出switch语句
注意:switch 语句中 break 语句是⾮常重要的,能实现真正的分⽀效果。 当然, break 也不是每个 case 语句都得有,这就得根据实际情况来看了。
比如:100和90+(分)在score/100之后分别为10和9
但是两者的评级是相同的(这两种情况的运行结果是相同的),这种情况不需要在每个case后都有一个相同的语句
本题中如:printf("%d>A\n", score); 只需要在最后一个case后添加printf("%d>A\n", score); 并加一个break跳出switch语句即可。
例如:
1. 输⼊1-5,输出的是“⼯作⽇”;
2. 输⼊6-7,输出“休息⽇
五、switch语句中case、default的顺序关系
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实 际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。