- if else
- 一个比较坑的东西
- switch case
- switch的运行流程
- 灵活运用
- default
- 一道例题
大家可以猜一下这段代码的结果
#includeint main() { int a = 0, b = 2; if (a == 1) if (b == 2) printf("呵呵"); else printf("哈哈"); return 0; }
这段代码晃眼一看觉得输出结果是 哈哈 ,但其实 什么都不会输出
因为else会自动匹配最近的一个if, 也就是第二个if,只不过我们这里else缩进与第一个
if相对应,就很容易误导我们
解决方案 : 一般在 if 和 else后面的语句体都要加 { },这样不容易发生这样的小错误
switch case switch的运行流程先看一下三次输出的结果
1.当case=1时
2.当case=2时
3.当执行语句后面加 break 时
总结 : case 是入口函数,当case后面的值满足了 switch 所包含的值,程序就开始执行,一直到每个case后的执行语句都执行完; 而break是出口函数,如果想要实现输入对应的case数就只执行对应的执行语句,那么就需要在每个case后加 break.
补充: case后必须跟整数常量
灵活运用假设我们输入1-5打印工作日,输入6-7打印休息日
可见,并不是一定要在每个后面都加break.因此,并不是一定要拘泥与某一种形式,具体用法还是要参考具体的需求.
当所有case子句都不满足时,就执行default的执行语句; default放的位置不影响结果,但一般都放在所有case子句的后面
一道例题
结果是 5,3



