你是否想对C语言的分支结构有足够的了解呢?
你是否能够熟练运用if语句、嵌套的if语句、switch语句呢?
快来和本鱼一起学习吧!
目录
1.if语句
1.1单独的if构成单分支
我们都知道 if 代表“如果”,在计算机里面也一样,if(...)代表如果怎么样,那么将发生的结果是什么就要写在其后,再加上“;” 形如:
if(怎么样)
结果1;
我们称 “怎么样” 为判断条件。
单独写成以上形式就可以代表一个单分支结构。
示例:
值得注意的是,判断条件时用“==”而不是“=”,后者代表的是赋值!
1.2if与else构成二分支
else代表“不然的话”,不然发生的结果书写格式与 if 相似:
if(怎么样)
结果1;
else
结果2;
c语言规定,if,else,后面只能跟一条语句。
若是发生的结果不止一件怎么办呢?
这是我们可以将多条语句用 { } 括起来作为一个整体形成——复合语句 ,这样计算机就理解你在这一条件下要执行的是一个大整体:
if(怎么样)
{
语句1;
语句2;
}
else
{
语句3;
语句4;
}
具体怎么实现呢,请看vcr:
这里鱼鱼建议所有友友们!不论if、else后面跟几条语句都要加上大括号!
因为这样既结构清晰,又美观!!!
1.3嵌套的if语句
1.3.1 if里面套if
当我们的判断条件不止一个时,该怎么用c语言实现呢?
首先想到的是,我们可以用if套if来实现
if(条件1)
{
语句1;
}
else
{
if(条件2)
{
语句2;
}
else
{
语句3;
}
}
使用这种方法有一个缺点就是当判断条件有非常非常多个时,写着写着就蒙圈了,他人也难以看懂你的代码,所以c语言将其进行了改造,变成了else if语句。
1.3.2 else if语句
依旧是判断一个人的年龄段
我们可以写如下代码:
1.4 悬空的 else 语句
上述情况都是每一个 if 都有 else 与之配对,那么是否会出现没有一一配对的情况呢?
答案是有的!
c语言规定,每一个 else 都首先与其最近的 if 配对。
看以下例子:
此时else与第二个if配对,所以在不满足a==1时,不输出任何结果。
那么如何打破这一规则呢?
我们可以进行如下操作:
这个大括号就相当于第一个 if 在对 else 说: 你不是我的结果,你是我的对立面!
所以从中我们更能看出大括号的重要性!
2.switch语句
除了 if 语句外,能够实现分支结构的还有 switch 语句。
基本格式如下:
switch(整型表达式)
{
case 情况1:
语句1;
break;
case 情况2:
语句2;
break;
.....
case 情况n:
语句n;
break;
defalut:
语句n+1;
break;
}
2.1 case 后面的情况
case后面的情况与整型表达式相呼应,与 if 语句不同的是,这种情况不能表示一个范围,它只是一个值!
整型表达式可以是整型变量,也可以是字符型变量,它们都属于整型家族!
直接看个例子吧:
计算机将day与case后面的情况相匹配,跳转到对应的case语句执行。
2.2 break 的作用
break在switch语句中代表这条语句到此结束,即遇见break就停止。
将上一个代码改造一下:
可以看到遇到星期四的break运行才停止。
那么请思考,如何实现多种情况对应一个语句呢?
我们可以写出如下代码:
2.3 default的作用
switch里面的default代表当没有一个情况与整型表达式相对应时,就执行default里面的语句,这个从字面意思上理解就可以
要知道,在switch语句中case与default的顺序不对结果造成影响 !
3.if语句与switch语句的区别与联系
if语句与switch语句都能实现多分支结构,区别在于:
if语句用于范围的判断,其判断的变量可以是任意类型!
好处:适用范围广,所有的switch语句都可以用 if 语句来表达。
switch语句用于情况较少的判断,其判断的变量必须是整型(int家族,char家族)!
好处:适用范围小,但排面清晰明了。
————————————————
好啦,分支结构的学习就到这里吧
感谢认真阅读完的小伙伴,你们的观看是对鱼鱼最大的鼓励!
或许鱼鱼有些地方做的不够好
不知亲爱的小伙伴是否能够提出您宝贵的意见呢♥