分支结构基础

        大家好哇,在C语言中有 分支结构 以及 循环结构 。而在咱们C语言中的分支结构就包含 if 语句和switch语句 , 而循环结构就包含 for循环 ,while循环以及do while 循环. 那今天就来讲讲分支结构,下次咱们就来讲循环结构。

1.if语句

if语句的语法形式如下图:

分支结构基础_第1张图片

if 翻译过来就是如果 ,如果表达式为真,就执行语句,假就不成立,就不执行语句,其实很好理解对不对,那咱们用代码的形式来呈现。当a

分支结构基础_第2张图片

2.else

if 语句 还可以搭配else 来使用,而else 的意思就是否则 ,那咱们用代码来呈现,a>b为假就执行else 输出hehe 。 

分支结构基础_第3张图片

3.嵌套if

而if else语句中,else 可以与另外的if语句连用,来构成多重的判断,而这也是嵌套if ,咱们用代码来呈现。

分支结构基础_第4张图片

if语句只能控制一条语句,如果想要控制2条或者2条以上就要加入{ }将代码括起来,而else 也可以加上{ } 。 

正确例子:分支结构基础_第5张图片

否则会报错误。

4.悬空else的问题

可能会有粗心的小伙伴遇到这种问题,那该如何解决呢?其实很简单,如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。 

分支结构基础_第6张图片

很多初学者,上来以判断 a 是 0,不等于 1 ,那就执⾏ else ⼦句,打印 haha 但是当你去运⾏代码,输出的结果是:啥都不输出。

那为什么会造成这样?因为上⾯的代码排版,让 else 和第⼀个 if 语句对⻬,让我们以为 else 是和第⼀个if匹配的,当 if 语句不成⽴的时候,⾃然想到的就是执⾏ else ⼦句,打印 haha ,但实际上 else 是和第⼆个 if 进⾏匹配的,这样后边的 if...else 语句是嵌套在第⼀个 if 语句中的,如果第⼀个 if 语句就不 成⽴,嵌套 if 和 else 就没机会执⾏了,最终啥都不打印。

我们可以这样修改一下

分支结构基础_第7张图片

只要带上适当的⼤括号,代码的逻辑就会更加的清晰,所以⼤家以后在写代码的时候要注意括号的使 ⽤,让代码的可读性更⾼。

 1.switch语句

switch语句,用于判断条件多个结果的情况,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。以下是语法形式。

分支结构基础_第8张图片

咱们用代码来呈现一下

分支结构基础_第9张图片

咱们在这里只写了2条分支,当然了分支是可以写多条的 。

上述的代码中,我们要注意的点有:

1. case 和后边的数字之间必须有空格。

2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句

否则会直接往下读取,而一个break 就代表着一个分支的结束 。错误例如:分支结构基础_第10张图片

3. switch 后的 expression 必须是整型表达式。

4. case 后的值,必须是整形常量表达式。

2.switch语句中的default

        在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,比如 switch 后的表达式中的值⽆法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊ default 子句。咱们用代码来呈现 ,当case 1 以及 case 2 无法匹配的时候,就输出default 中的语句 。 

分支结构基础_第11张图片

3.switch语句中的case和default的顺序问题

在 switch 语句中 case ⼦句和 default ⼦句有要求顺序吗? default 只能放在最后吗? 其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实 际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。

分支结构基础_第12张图片

结尾

以上就是分支语句的大致内容,如果有不足的地方还请给予补充,感谢大家的阅读,希望可以帮助到大家!

你可能感兴趣的:(算法,c语言)