(上) C语言中的语句分类及分支语句:if语句、switch语句介绍

这篇具有很好参考价值的文章主要介绍了(上) C语言中的语句分类及分支语句:if语句、switch语句介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、语句的分类

1. 空语句

2. 表达式语句

3. 函数调用语句

4. 复合语句

5. 控制语句

二、分支语句

1. if语句

(1) if的使用

(2) else的使用

(3) 分支中包含多条语句

(4) 嵌套if

(5) 悬空else问题

2. switch语句

(1) if语句和switch语句的对比

(2) switch语句中的break

(3) switch语句中的default

(4) switch语句中的case和default的顺序问题

结语:


前言

C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或者这三种结构的组合。

我们可以使用if 、switch实现分支结构,使用 for 、while 、do while实现循环结构。

一、语句的分类

C语言的代码是由一条一条的语句构成的,C语言中的语句可为以下五类:
空语句、表达式语句、函数调用语句、复合语句、控制语句。

1. 空语句

空语句是最简单的语句,一个分号就是一条语句,也就是空语句。
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
空语句一般出现的地方:这里需要一条语句,但是这个语句不需要做任何事,就可以写一个空语句。

2. 表达式语句

表达式是由操作符和操作数组成的,可以进行运算和求值的一种数据结构。简单来说,表达式是将值和运算符组合起来表示计算过程的方式。

表达式语句就是在表达式的后边加上分号。如下所示:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

3. 函数调用语句

printf是一个库函数,而add是我们自定义的一个函数,后面会讲关于自定义函数的知识。

函数调用的时候,加上分号,就是函数调用语句。
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

4. 复合语句

复合语句是由多个语句组成的语句块。在大多数编程语言中,复合语句通常被定义在一对花括号{}中,其中的语句按顺序执行。

(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

5. 控制语句

控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。
可分成以下三类:
条件判断语句也叫分支语句:if语句、switch语句;
循环执行语句:do while语句、while语句、for语句;
转向语句:break语句、goto语句、continue语句、return语句。
今天来讲解分支语句:if语句、switch语句。

二、分支语句

1. if语句

(1) if的使用

if 语句的语法形式如下:

(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。
在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果不是0,则语句执行。
例子:输入一个整数,判断是否为偶数:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
下面是例子的流程图:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

(2) else的使用

就上面的问题继续,如果一个数不是偶数,那肯定就是奇数了,如果任意一个整数,我们要清楚的判断是奇数还是偶数怎么表示呢?
这时就需要 if...else... 语句了,语法形式如下:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
例子:输入一个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印数偶数:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

(3) 分支中包含多条语句

C语言中默认 if 和 else 语句都只控制一条语句,比如:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
上面的代码,你会发现输入的值不管是>=18 还是小于18,"可以谈恋爱了" 都会打印在屏幕上。
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
这是因为 if 语句只能控制一条语句,就是 printf("成年了\n"); ,if语句为真,则打印成年了, if语句为假,则不打印,对于 printf("可以谈恋爱了\n"); 是独立存在的,不管if语句的条件的真 假,都会被执行。
那么如果我们想要if语句同时控制2条语句,怎么办呢?这就要使用 {} 将代码括起来了。
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
else 后也可以跟上大括号。如下:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

(4) 嵌套if

在 if else 语句中, else 可以与另一个 if 语句连用,构成多重判断。
比如:要求输入一个整数,判断输入的整数是0,还是正数或者负数。请看如下代码:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
上图中蓝色背景的代码就是嵌套在前面else子句中的,构成了嵌套的if语句。
再比如:
输入一个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:非正数。
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
上面的代码中蓝色背景的代码也是嵌套在 if 语句中的,构成了嵌套的 if 语句。
有了嵌套if语句,就可以完成更多复杂逻辑的判断。

(5) 悬空else问题

如果有多个 if 和 else ,可以记住这样一条规则, else 总是跟最接近的 if 匹配。
我们首先从下面代码开始:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
程序运行的结果是啥?
很多初学者,上来以判断 a 是 0,不等于5 ,那就执行 else 子句,打印No
但是当你去运行代码,输出的结果是:啥都不输出。
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
为什么呢?
这就是悬空 else 的问题,如果有多个 if 和 else ,可以记住这样一条规则, else 总是跟最接近 的 if 匹配。
上面的代码排版,让 else 和第一个 if 语句对齐,让我们以为 else 是和第一个if匹配的,当 if 语句不成立的时候,自然想到的就是执行 else 子句,打印No ,但实际上 else 是和第二个 if 进行匹配的,这样后边的 if...else 语句是嵌套在第⼀个 if 语句中的,如果第一个 if 语句就不 成立,嵌套 if 和 else 就没机会执行了,最终什么都不打印。
如果代码改成下面这样就更加容易理解了
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
或者如果我们希望else确实和第一个if匹配,可以这样修改代码:
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言
只要带上适当的大括号,代码的逻辑就会更加的清晰,所以大家以后在写代码的时候要注意括号的使用,让代码的可读性更高。

2. switch语句

除了 if 语句外,C语言还提供了 switch 语句来实现分支结构。

switch 语句是一种特殊形式的if...else 结构,用于判断条件有多个结果的情况。它把多重的else if 改成更易用、可读性更好的形式。

(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

上面代码中,根据表达式expression不同的值,执行相应的 case 分支。如果找不到对应的值, 就执行 default 分支。

注:switch 后的expression必须是整型表达式,case 后的值,必须是整形常量表达式。

(1) if语句和switch语句的对比

练习:输入任意一个整数值,计算除3之后的余数,如果使用if语句完成,如下:

(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

如果使用switch语句改写,就可以是这样的:

(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

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

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

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

(2) switch语句中的break

前面的代码中,如果我们去掉case语句中的break,会出现什么情况呢?

(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

用数字6测试,看一下结果:

(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

我们发现,6除以3本来余数是0,但是程序运行的结果多了两行,分别是"余数是1"以及"余数是2"的打印。

这是为什么呢?原因是 switch 语句也是有分支效果的,只有在 switch 语句中使用 break 才能在跳出 switch 语句,如果某一个 case 语句的后边没有 break 语句,代码会继续往下执行,有可能执行其他 case语句中的代码,直到遇到 break 语句或者 switch 语句结束。

就比如上面的代码就执行了 case 1 与 case 2 中的语句。 所以在 switch 语句中 break 语句是非常重要的,能实现真正的分支效果。 当然, break 也不是每个 case 语句都得有,这就得根据实际情况来看了。

(3) switch语句中的default

在使用 switch 语句的时候,我们经常可能遇到一种情况,比如 switch 后的表达式中的值无法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加入default 子句。

(上) C语言中的语句分类及分支语句:if语句、switch语句介绍,c语言,开发语言

switch 后边的 expression 的结果不是 value1 ,也不是 value2 的时候,就会执行default 子句。

(4) switch语句中的case和default的顺序问题

在 switch 语句中 case 子句和 default 子句有要求顺序吗? default 只能放在最后吗?

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

结语:

关于if语句与switch语句就介绍到这里,如果文章有什么错误,希望各位可以在评论区斧正。文章来源地址https://www.toymoban.com/news/detail-814180.html

到了这里,关于(上) C语言中的语句分类及分支语句:if语句、switch语句介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 九、程序的流程结构(if分支语句,Switch分支,for循环)

    程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。 顺序结构:从上向下,逐行执行。 选择结构:条件满足,某些代码才会执行。0-1次 ​ 分支语句:if,switch,select 循环结构:条件满足,某些代码会被反复的执行多次。0-N次 ​ 循环语句:for 语法格式: 示

    2024年02月07日
    浏览(39)
  • 【C语言初阶】 分支语句 if 的全面介绍

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,相信大家都多多少少了解过if语句吧,但是你真的有了解过,所有if语句的细节吗?学完这篇文章你将知道if语句的所有知识

    2024年02月13日
    浏览(47)
  • 【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

    Go系列文章: GO开篇:手握Java走进Golang的世界 2 Go开发环境搭建、Hello World程序运行 3 Go编程规约和API包 4 Go的变量、常量、运算符 5 Go 基本数据类型 6 Go 复杂数据类型之指针 Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html if 语句由布尔表达式后紧跟一个或多个语句组

    2024年02月09日
    浏览(38)
  • Scala条件分支语句if用法详细介绍

    在Scala中,控制结构语句包括条件分支语句和循环语句。其中,条件分支语句有if语句、if…else 语句、if…else if…else 语句以及 if…else 嵌套语句;条件分支语句的用法介绍如下: 1.if格式的语法格式 2.if…else 语句的语法格式如下: 3.if…else if…else 语句的语法格式如下: 4.if…

    2024年02月13日
    浏览(53)
  • 【精通C语言】:分支结构if语句的灵活运用

    🎥 屿小夏 : 个人主页 🔥个人专栏 : C语言详解 🌄 莫道桑榆晚,为霞尚满天! C语言中的控制语句是程序设计中不可或缺的重要组成部分。从简单的if语句到复杂的多分支结构,掌握这些语句对于编写高效、灵活的程序至关重要。本文将深入探讨C语言中控制语句的各种形

    2024年01月23日
    浏览(34)
  • 「PHP系列」If...Else语句/switch语句

    PHP 中的 if...else 语句是用于根据条件执行不同代码块的强大工具。这种结构允许你基于某个条件(通常是布尔表达式)的结果来决定执行哪一部分代码。下面是对 if...else 语句的详细解释以及一些示例。 示例 1:基本 if…else 结构 在这个例子中,如果 $number 大于 5,将输出 “

    2024年04月27日
    浏览(38)
  • 【C语言趣味教程】(10) 分支语句 Ⅱ:switch 语句 | fall-through 效应 | default 子句 | else 特性详解 | else 匹配原则 | 悬空 else 隐患

        🔗 《C语言趣味教程》👈 猛戳订阅!!! 0x00 switch 的语法 📚 介绍: switch 语句是一种多分支语句,常常用于 \\\"多分支\\\" 的情况。 用于不同条件执行不同动作,每一个 case 分支都是唯一的,从上往下逐一测试直到匹配为止。 一个标准的 switch 语句由三部分组成: case

    2024年02月03日
    浏览(53)
  • C 语言中的 switch 语句和 while 循环详解

    替代多重 if..else 语句,可以使用 switch 语句。 switch 语句用于选择多个代码块中的一个来执行 switch 表达式只会被计算一次 表达式的值与每个 case 的值进行比较 如果找到匹配,则执行相应的代码块 break 语句用于跳出 switch 块并停止执行 default 语句是可选的,如果找不到匹配的

    2024年02月04日
    浏览(39)
  • 7.JS里表达式,if条件判断,三元运算符,switch语句,断点调试

    表达式就是可以被求值的代码比如什么a = 1 语句就是一段可以执行的代码比如什么if else 直接给B站的黑马程序员的老师引流一波总结的真好 就是基本上所有的语言都会有的if else 语句就是满足不同的条件执行不同的代码,让计算机有条件判断的能力。 注意在if的括号里面除了

    2024年02月20日
    浏览(52)
  • 深入MaxCompute -第十弹 -IF ELSE分支语句

    简介: MaxCompute通过脚本模式支持IF ELSE分支语句,让程序根据条件自动选择执行逻辑,支持更好的处理因数据不同而需要采用不同策略的业务场景产生的复杂SQL,提高开发者编程的灵活性! MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包