C语言知识点:分支语句

本文详细介绍了C语言中if-else和switch语句的结构、执行流程、嵌套使用以及break命令的作用。作者强调了分支结构中的语法规范和逻辑判断,包括使用花括号、else与最近if的关系以及case和default的顺序灵活性。
摘要由CSDN通过智能技术生成

1. if 语句

前言:

if ... else 是C语言中常用的分支语句,作为语言基础,if else也在其他语言中(如python)中广泛使用。下面是根据上课和自己的理解总结出的知识点。

1.1 if 语句

表达式成立(为真),则语句执行,表达主式不成立(为假),则语句不执行;


在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果不是0,则语句执行。

下面是if语句的执行流程:

1.2 else if

else if 和 if 的结构差不多,区别就是:先进入 if 语句,再进入 else if 语句。

如果不满足 if 语句的条件,就会进入 else if 进行判断。

比如:输入 age : 11,因为不满足 if(age <= 8),所以进入 else if(age > 8 && age <= 18),因为11满足条件,所以输出“青少年”。 (&&是逻辑操作符,等于 and)。

1.3 else

else 语句相当于一个兜底,如果一个条件不满足了if 语句 和else if 语句,就会将条件不满足的部分全部归为 else语句。

比如:当我输入 51,就会输出“老年”。因为51即不满足if 的表达式,也不满足所有 else if 的表达式,因此就会归入else 语句。

1.4 分支中包含多条语句

我们都知道 if 分支语句中需要加花括号 { },这样在满足if 的表达式后,执行花括号中的全部语句。

如果不加花括号,就只能执行紧挨着if 的第一个语句。

比如:当我们输入18,就会打印“已成年 可以干大事了”。看似是if 后面的语句都打印了

但是,当我们输入的值不等于18,会发生什么呢。

很明显,“可以干大事了”这个语句是独立出来的,并不受if 控制。

所以,为了书写规范,即使if 后只有一条语句,也要加上花括号。

1.5 嵌套 if

else if 就是一个简单的嵌套,在 if 和 else 中间插入其他条件。

if 语句中还可以插入 if 语句,构成嵌套 if。

相当于 age >= 18 是第一个条件,进入内部的 if,如果输入满足 age <= 28, 就会输出“青年”。

1.6 悬空 else 情况

就是如果有多个 if 和 else,可以记住这样一条规则,else 总是跟最接近的 if 匹配。

比如这一段代码:

如果你光看 if 和 else 的位置,初学者可能以为 第一个 if 和 else 是匹配的,最后输出“1111”。

其实,当运行后发现,什么都没输出。

其实 else 是和最近的 if 匹配的,比如我们满足 a == 0,然后让第二个 if (b == 5)。

因为 a == 0,满足第一个 if 进入第二个 if,又因为 b == 4,不满足第二个 if,所以输出 else 语句

所以,证明了 else 和最近的 if 匹配。

这也间接证明了,如果不写花括号 { },就会导致语句顺序混乱,所以 if else 语句要加上花括号。

以上就是 if else 语句的内容。

2. switch 语句

前言:

switch 语句也是 C语言中的分支语句,是一种特殊的 if ... else 结构,用于判断条件有多个结果的情况。因为它把 else if 改成了可读性更好的方式。

2.1 switch 语句表达式

如上图,结构和 if ... else 语句差不多,先是满足 switch 中的表达式,然后进入语句。

与 if ... else 语句有一些不同的是,switch 语句在满足表达式后,需要再判断 case 的情况,如果满足某个 case,再执行该 case 的语句。

如果输入的条件不满足 case 的情况,就会自动归入 default,相当于 else 兜底。

比如:我定义了年龄 age 为 int(整数类型),所以我输入整数后会进入 switch 语句。

输入 18,打印“成年”。输入22,打印“大学毕业”。输入其他数字则会打印“11111”。

2.2 break

如下图,为什么输入18后,打印了其他case的语句呢,那是因为18满足了第一个 case 的情况,执行该语句,然后因为没有 break 跳出该分支语句,所以接着下面的语句执行了。

那么就引出了一个命令 “break”,break的功能是可以跳出该switch分支语句(在以后的循环语句中也会有 break 的使用)。如下图:在加入了 break 后,就可以只执行某个 case 中的语句了。

           

2.3 case 和 default 的顺序问题

其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满足实
际需求的就可以。

比如我把 case 和 default 的位置调换一下,依然不影响输出。只是为了看起来逻辑通顺,才把最后的兜底情况 default 放到最后。

3. 结尾

好了,常用的分支语句 if else 和 switch 内容就是这么多了。接下来会更新 循环语句(while, for, do ... while)。

本人纯小白,有错误请指正。

  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值