C语言中分支语句有 if 和 swich语句
首先来了解一下if 语句;主要用于双分支,多分支语句中;其主要结构如下图
如果表达式为真那么if语句就会往下走;在C语言中一切非0即为真;切记每个if else语句只能读写一组语句;如果想多组语句输入那么要在语句外面套上一个大括号;并且特别强调一下每一个else语句就近原则匹配if语句;让我们输一下代码具体走一下;
当我们输入这个代码的时候,我想让当a=1的时候输出hehe,当不等于1的时候输出 haha 和 momo; 下面我把运行结果打出来看看当a等于1时能否输出hehe;
可以明显的看到不光是hehe 被打印了并且momo也被打印了;从这我们可以得出上面的论证;if else 语句,只能读写一个语句;
那么如果我们想要实现读取两条语句的时候那该怎么办呢?
别急,看我下面这个代码;我们可以清晰地看到,当a=1时只打印了hehe,并没有打印momo;
所以得出结论,当想用if else 语句控制多条语句时,我们可以用{}把多组语句包括起来,变成一个代码块,从而使if else 语句能够识别运行代码块里面所有的代码;
再来讲一下else
每一个else都需要匹配一个if;并且匹配原则为就近原则;即只与最近的一个if语句匹配;
我们来看代码;
当我代码写成这样时,很多人会以为这个代码会输出 haha;会觉得if语句判断a不等于1,所以走else语句;从而输出haha;
其实这里有一个盲区;每一个else语句只与最近的if语句匹配;所以第一个if语句没有else匹配;当a不等于1时就什么都没有输出;
写代码格式也非常重要;每一个对应的数据应当对应输入;
个人建议在写 if else 语句时,在每一个 if else 下面加上一个{},这样使你的代码更加简洁明了,就不会存在else 不知道跟哪个if匹配的现象;
其次再来说一下 switch语句;
switch语句也是分支语句,只要用于判断多分支情况;比如判断今天星期几,这个月是几月份,等等;如果这种多分支情况用 if else 来判断,那么代码太长太麻烦了,所以这时候就要用到我们的switch语句;
switch语句是和if语句一样能够嵌套使用的;
先让我们看一下switch语句结构;
那么语句项又是什么呢;
可以看到语句项就是case 整形常量表达式 加上一个语句;
再者switch语句中每个分支的出口 为 break;
看下面这个代码,大家觉得会输出什么;
当我们输入一个1 的时候可能有人会觉得会输出一个“星期一”,其实不对;switch语句中,如果每一个分支不设置出口,那么从输入的分支进去之后,只会一直往下运行,直至结束返回0;
所以我们这时候就需要在,你需要返回结束的分支创建一个出口;即 break 语句;当代码运行到break 时自动跳出语句;我们可以看下代码;
由此可见,在switch语句中,case代表入口,break 则代表出口;
要注意的是,在switch语句中必须是整形表达式,不可以用浮点型;
关键来了,字符也是可以的,因为字符在因为字符在底层存储当中是以阿斯克码值的形式存储的。笔记加一;
default 的使用
如果表达式的值与所有的case
的标签值都不匹配,我们可以使用default
来提示用户,default
可以写在任何位置,并且一个switch
语句只能有一个default
子句。
什么意思呢,拿if else 比较,就相当于switch语句中的else;并且default语句后面也是可以写break的;
大家肯定都是天才不是笨蛋,我就不细说了;直接上代码;
如图所例,当我们day的值大于7时,没有case语句让我们进入,那么这时候就会进入default;类似于if else 中的作用;上图输出结果就为“输入错误”;
下面我写了一个代码,大家可以试着理解一下代码的意思,跟结果;
答案是m = 5,n =3.你理解了嘛。
好了这就是我与大家分享的分支结构,如果写的不好希望大家提出建议,有错误也请大家指出,我希望可以和大家一起学习一起分享一起进步。