细说c语言的分支结构

你是否想对C语言的分支结构有足够的了解呢?

你是否能够熟练运用if语句、嵌套的if语句、switch语句呢?

快来和本鱼一起学习吧!

目录

1.if语句

1.1单独的if构成单分支

1.2if与else构成二分支

1.3嵌套的if语句

1.3.1  if里面套if

1.3.2  else if语句

1.4 悬空的 else 语句

2.switch语句 

2.1 case 后面的情况

 

2.2 break 的作用

2.3 default的作用

 3.if语句与switch语句的区别与联系


 

1.if语句

1.1单独的if构成单分支

我们都知道 if 代表“如果”,在计算机里面也一样,if(...)代表如果怎么样,那么将发生的结果是什么就要写在其后,再加上“;”   形如:

if(怎么样)
    结果1;

我们称 “怎么样” 为判断条件。

单独写成以上形式就可以代表一个单分支结构。

示例:

68187b7cf5a4427f9ef018448c618a5e.png

值得注意的是,判断条件时用“==”而不是“=”,后者代表的是赋值!

1.2if与else构成二分支

else代表“不然的话”,不然发生的结果书写格式与 if 相似:

if(怎么样)
    结果1;
else
    结果2;

c语言规定,if,else,后面只能跟一条语句。

若是发生的结果不止一件怎么办呢?

这是我们可以将多条语句用 { } 括起来作为一个整体形成——复合语句 ,这样计算机就理解你在这一条件下要执行的是一个大整体:

if(怎么样)
{
    语句1;
    语句2;
}
else
{
    语句3;
    语句4;
}

具体怎么实现呢,请看vcr:

d641c011d88445abb5ffc79d1fe821bf.png

这里鱼鱼建议所有友友们!不论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语句

依旧是判断一个人的年龄段

我们可以写如下代码:

3417877ff6984ee49ac8bc2b97afa146.png

1.4 悬空的 else 语句

上述情况都是每一个 if 都有 else 与之配对,那么是否会出现没有一一配对的情况呢?

答案是有的!

c语言规定,每一个 else 都首先与其最近的 if 配对。

看以下例子:

b22d34ab87fa488ca95e8e429ad8b64b.png

此时else与第二个if配对,所以在不满足a==1时,不输出任何结果。

那么如何打破这一规则呢?

我们可以进行如下操作:

14e963487fb2463a9d6ed3802fe0669b.png

这个大括号就相当于第一个 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 语句不同的是,这种情况不能表示一个范围,它只是一个值!

整型表达式可以是整型变量,也可以是字符型变量,它们都属于整型家族!

直接看个例子吧:

 

8932b3d07ba346edacb33d73953da26e.png

 计算机将day与case后面的情况相匹配,跳转到对应的case语句执行。

2.2 break 的作用

break在switch语句中代表这条语句到此结束,即遇见break就停止。

将上一个代码改造一下:

cbd55fc635764091aab7bcc4b141b246.png

可以看到遇到星期四的break运行才停止。 

那么请思考,如何实现多种情况对应一个语句呢? 

我们可以写出如下代码:

e9306983e82e437685f35c279de78996.png

2.3 default的作用

switch里面的default代表当没有一个情况与整型表达式相对应时,就执行default里面的语句,这个从字面意思上理解就可以 

要知道,在switch语句中case与default的顺序不对结果造成影响 !

 3.if语句与switch语句的区别与联系

if语句与switch语句都能实现多分支结构,区别在于:

if语句用于范围的判断,其判断的变量可以是任意类型!

好处:适用范围广,所有的switch语句都可以用 if 语句来表达。

switch语句用于情况较少的判断,其判断的变量必须是整型(int家族,char家族)!

好处:适用范围小,但排面清晰明了。

————————————————

好啦,分支结构的学习就到这里吧

感谢认真阅读完的小伙伴,你们的观看是对鱼鱼最大的鼓励! 

或许鱼鱼有些地方做的不够好

不知亲爱的小伙伴是否能够提出您宝贵的意见呢♥

 

  • 25
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值