一.C语言中的3种结构和九种控制语句
3种结构分别是:
1.顺序结构
2.选择结构---分支语句
3.循环结构---循环语句
九种控制语句可以分为3类:
1.分支语句(条件判断语句)----if语句、switch语句;
2.循环语句 -----for循环、while循环、do while循环;
3.转向语句----goto语句、break语句、continue语句、return语句;
下面我来介绍一下分支语句。
二.分支语句
接下来我们来了解一下分支语句中的if语句
1.if语句
if语句分为单分支语句、双分支语句、多分支语句
上图描述出了if语句中的单分支语句,如果表达式成立,那么就执行下面的语句打印“嘿嘿”,如果表达式不成立则什么都不打印,那如果想让表达式为假的时候也能打印东西呢,这时候就要用到双分支语句。
此时的表达式1为假,即表达式不成立,那么就执行了语句2的内容,打印了“呵呵”,但是如果有多种情况呢,这时候就要用到多分支语句-----
这时候表达式1不成立,而表达式2成立,那么就执行表达式2中的语句2,打印“哈哈”
如果表达式下面有多条语句,此时我们应该用{ }把多条语句包括起来,否则就会出现下面的情况
此刻,我们可以看到明明表达式1成立,那为什么还会执行else中的语句打印“嘿嘿”呢?是因为这时候printf("嘿嘿\n");不是我们else下的语句;printf("嘿嘿\n")仅仅只是依照我们程序顺序执行的代码。
这个时候我将else下的多条语句用{ }包括起来,那么它们就都是执行else这种情况下才会执行的语句了。所以为了养成良好的代码书写风格,建议将表达式下的语句都用{ }包括起来。
1.2.练习
1.判断一个数是不是奇数
2.判断大小
2.switch语句
switch语句也是分支语句的一种,常常用于多分支,例如:
这时候如果用if语句,那么else if的形式就显的太复杂了,所以这时候就有了不一样的语法形式,那就是switch语句
(整形表达式的值可以是整数或字符,不能是浮点数)!!!!!
default子句:
就算switch语句为我们提供了方便的多分支,但是我们也不可能全部列举完,所以这时候就介绍到default子句,default子句与if语句中的else相似,当所有的表达式(case 语句)都不成立时,就会执行default子句。
运行结果:
default语句可以放在switch语句列表的任何位置,当switch语句的整形表达式不匹配所有case语句时,就会执行default子句后面的语句。
搭配break;
此时就做到了真正意义上的分支了嘛?其实并没有:
这时候我们可以看到不仅打印了星期二,并且还打印了后面case语句对应的语句,这是因为case是执行的入口,并没有出口,所以需要搭配break来充当出口跳出switch语句,就不会执行接下来的语句。
这个时候就达到了我们想要的结果,真正意义上的实现分支。