收集飞花令碎片——C语言分支与循环语句(上)
前言
Hello,各位码友,本章将会给大家带来C语言的分支与循环整章串讲,这一张的内容分为基础知识和程序练习两个部分
希望通过这一章能够带大家更好地去掌握C语言的分支与循环语句
大家一起努力吧
C语言分支与循环语句(基础知识)
- C语言语句的分类
- 一、分支语句
- (1)if语句
- (2)if-else 语句
- (3)if-else if-else 链
- 流程图演示
- 注意:悬空else问题
- (4)switch 语句
- 二、循环语句
- (1)while 循环
- 流程图演示
- (2)do-while 循环
- 流程图演示
- (3)for 循环
- 流程图演示
- 三、嵌套循环
- 拓展:辅助控制语句
- (1)break
- 流程图演示
- (2)continue
- 流程图演示
- (3)goto
- 这一章的C语言分支与循环结构的基础知识已经全部讲完了,下一章会利用几道程序设计题目让大家更好地掌握分支循环语句
C语言语句的分类
(1)表达式语句(例如 y=x+3;假设变量y和x均已定义)
(2)函数调用语句(MAX(x,y);假设函数MAX()已经定义)
(3)控制语句
(4)复合语句(把多种语句复合在一起形成的语句)
(5)空语句(例如 ;分号本身就可以作为一条语句,称为空语句,至于空语句的作用,后续会讲到 )
无论上述哪一种语句,都必须以分号结束!
一、分支语句
(1)if语句
作用: 基础条件判断
if (条件) {// 条件为真时执行
}
(2)if-else 语句
作用: 二选一分支。
if (条件) {// 条件为真时执行
} else {// 条件为假时执行
}
(3)if-else if-else 链
作用: 多条件分支。
if (条件1) {// 条件1为真时执行
} else if (条件2) {// 条件2为真时执行
} else {// 其他情况
}
流程图演示
注意:悬空else问题
如果有多个if
和else
,可以记住这样一条规则,else
总是跟最近的if
匹配
我们首先从最下面的代码开始
include <stdio.h>
int main(){int a = 0;int b = 2;if(a = 1)if(b = 2)printf("hehe\n");elseprintf("haha\n");return 0;
}
最后你会发现,运行代码啥都不输出
这就是悬空else
的问题,就是else
总是跟最近的if
匹配
(4)switch 语句
作用: 多路选择,基于整型或枚举值。
switch (表达式) {case 值1:// 匹配值1时执行break;case 值2:// 匹配值2时执行break;default:// 默认情况 或者 剩余情况
}
二、循环语句
(1)while 循环
作用: 先判断条件,后执行循环体。
while (条件) {// 条件为真时重复执行
}
流程图演示
(2)do-while 循环
作用: 先执行一次循环体,再判断条件(至少执行一次)。
do {// 循环体
} while (条件);
流程图演示
(3)for 循环
集初始化、条件判断、迭代于一行。
for (初始化; 条件; 迭代) {// 循环体
}
代码示例:
for (int i = 0; i < 10; i++) {printf("%d\n", i);}
流程图演示
三、嵌套循环
循环内包含其他循环(任意组合 for、while、do-while)。
for (int i = 0; i < 3; i++) {while (j < 2) {// 嵌套逻辑j++;}
}
利用嵌套循环可以打印出不同样式的九九乘法表,在程序练习那一章会讲解
拓展:辅助控制语句
作用: 与分支和循环配合使用的跳转语句:
(1)break
作用: 立即退出当前循环或 switch 语句。
while (1) {if (x == 5) break; // 退出循环
}
流程图演示
(2)continue
作用: 跳过当前循环的剩余部分,进入下一次迭代。
注意:
-
只能在 for、while、do-while 循环内部使用。
-
不可在 switch 或非循环代码块中直接使用(除非 switch 嵌套在循环内)。
for (int i = 0; i < 10; i++) {if (i % 2 == 0) continue; // 跳过偶数printf("%d ", i); // 仅打印奇数
}
流程图演示
(3)goto
作用: 跳转到指定标签(慎用,易破坏代码结构)。
goto label;
// ...
label:printf("跳转至此");
这一章的C语言分支与循环结构的基础知识已经全部讲完了,下一章会利用几道程序设计题目让大家更好地掌握分支循环语句
如果你觉得这篇文章对你有帮助,请给小编一个三连支持一下嘻嘻嘻