网站开发好学不,网页音频提取工具,轻量应用服务器搭建网站,如何备份网站程序吗目录
前言
一、语句的分类
1. 空语句
2. 表达式语句
3. 函数调用语句
4. 复合语句
5. 控制语句
二、分支语句
1. if语句
(1) if的使用
(2) else的使用
(3) 分支中包含多条语句
(4) 嵌套if
(5) 悬空else问题
2. switch语句
(1) if语句和switch语句的对比
(2) s…目录
前言
一、语句的分类
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. 空语句
空语句是最简单的语句一个分号就是一条语句也就是空语句。 空语句一般出现的地方这里需要一条语句但是这个语句不需要做任何事就可以写一个空语句。 2. 表达式语句
表达式是由操作符和操作数组成的可以进行运算和求值的一种数据结构。简单来说表达式是将值和运算符组合起来表示计算过程的方式。 表达式语句就是在表达式的后边加上分号。如下所示 3. 函数调用语句
printf是一个库函数而add是我们自定义的一个函数后面会讲关于自定义函数的知识。 函数调用的时候加上分号就是函数调用语句。 4. 复合语句
复合语句是由多个语句组成的语句块。在大多数编程语言中复合语句通常被定义在一对花括号{}中其中的语句按顺序执行。 5. 控制语句
控制语句用于控制程序的执行流程以实现程序的各种结构方式C语言支持三种结构顺序结构、选择结构、循环结构它们由特定的语句定义符组成C语言有九种控制语句。 可分成以下三类 条件判断语句也叫分支语句if语句、switch语句 循环执行语句do while语句、while语句、for语句 转向语句break语句、goto语句、continue语句、return语句。 今天来讲解分支语句if语句、switch语句。 二、分支语句 1. if语句 (1) if的使用 if 语句的语法形式如下: 表达式成立为真则语句执行表达式不成立为假则语句不执行。 在C语言中0为假非0表示真也就是表达式的结果如果是0则语句不执行表达式的结果如果不是0则语句执行。 例子输入一个整数判断是否为偶数 下面是例子的流程图 (2) else的使用 就上面的问题继续如果一个数不是偶数那肯定就是奇数了如果任意一个整数我们要清楚的判断是奇数还是偶数怎么表示呢 这时就需要 if...else... 语句了语法形式如下 例子输入一个整数判断是否为奇数如果是奇数打印是奇数否则打印数偶数。 (3) 分支中包含多条语句 C语言中默认 if 和 else 语句都只控制一条语句比如 上面的代码你会发现输入的值不管是18 还是小于18可以谈恋爱了 都会打印在屏幕上。 这是因为 if 语句只能控制一条语句就是 printf(成年了\n); if语句为真则打印成年了 if语句为假则不打印对于 printf(可以谈恋爱了\n); 是独立存在的不管if语句的条件的真 假都会被执行。 那么如果我们想要if语句同时控制2条语句怎么办呢这就要使用 {} 将代码括起来了。 else 后也可以跟上大括号。如下 (4) 嵌套if 在 if else 语句中 else 可以与另一个 if 语句连用构成多重判断。 比如要求输入一个整数判断输入的整数是0还是正数或者负数。请看如下代码 上图中蓝色背景的代码就是嵌套在前面else子句中的构成了嵌套的if语句。 再比如 输入一个整数如果是正数再判断是奇数还是偶数并输出如果不是正数则输出非正数。 上面的代码中蓝色背景的代码也是嵌套在 if 语句中的构成了嵌套的 if 语句。 有了嵌套if语句就可以完成更多复杂逻辑的判断。 (5) 悬空else问题 如果有多个 if 和 else 可以记住这样一条规则 else 总是跟最接近的 if 匹配。 我们首先从下面代码开始 程序运行的结果是啥 很多初学者上来以判断 a 是 0不等于5 那就执行 else 子句打印No 但是当你去运行代码输出的结果是啥都不输出。 为什么呢 这就是悬空 else 的问题如果有多个 if 和 else 可以记住这样一条规则 else 总是跟最接近 的 if 匹配。 上面的代码排版让 else 和第一个 if 语句对齐让我们以为 else 是和第一个if匹配的当 if 语句不成立的时候自然想到的就是执行 else 子句打印No 但实际上 else 是和第二个 if 进行匹配的这样后边的 if...else 语句是嵌套在第⼀个 if 语句中的如果第一个 if 语句就不 成立嵌套 if 和 else 就没机会执行了最终什么都不打印。 如果代码改成下面这样就更加容易理解了 或者如果我们希望else确实和第一个if匹配可以这样修改代码 只要带上适当的大括号代码的逻辑就会更加的清晰所以大家以后在写代码的时候要注意括号的使用让代码的可读性更高。 2. switch语句 除了 if 语句外C语言还提供了 switch 语句来实现分支结构。 switch 语句是一种特殊形式的if...else 结构用于判断条件有多个结果的情况。它把多重的else if 改成更易用、可读性更好的形式。 上面代码中根据表达式expression不同的值执行相应的 case 分支。如果找不到对应的值 就执行 default 分支。 注switch 后的expression必须是整型表达式case 后的值必须是整形常量表达式。 (1) if语句和switch语句的对比 练习输入任意一个整数值计算除3之后的余数如果使用if语句完成如下 如果使用switch语句改写就可以是这样的 上述的代码中我们要注意的点有 1. case 和后边的数字之间必须有空格 2. 每一个 case 语句中的代码执行完成后需要加上 break 才能跳出这个switch语句。 (2) switch语句中的break 前面的代码中如果我们去掉case语句中的break会出现什么情况呢 用数字6测试看一下结果 我们发现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 子句。 switch 后边的 expression 的结果不是 value1 也不是 value2 的时候就会执行default 子句。 (4) switch语句中的case和default的顺序问题 在 switch 语句中 case 子句和 default 子句有要求顺序吗 default 只能放在最后吗 其实在 switch 语句中 case 语句和 default 语句是没有顺序要求的只要你的顺序是满足实际需求的就可以。 不过我们通常是把 default 子句放在最后处理的。 结语 关于if语句与switch语句就介绍到这里如果文章有什么错误希望各位可以在评论区斧正。