C语言流程控制语句学习笔记

在职坐标学习第三天C语言流程控制语句学习笔记
一、流程控制语句概述
C语言的流程控制语句就像交通信号灯,控制程序执行的顺序和方向。主要分为三类:
顺序结构:代码从上到下依次执行(默认)。
选择结构 (分支):根据条件选择执行哪条路。
循环结构 (重复):重复做某件事。
跳转语句:控制流程的跳转。
二、选择结构 (分支)
用于根据条件执行不同的代码块。
if 语句
用于判断条件是否成立。
格式与说明:
if (条件) { ... } :单分支,满足条件才执行,不满足则跳过。
if (条件) { ... } else { ... } :双分支,二选一,非此即彼。
if...else if...else :多分支,多选一,从上往下依次判断,满足一个即停止。
注意事项:
条件表达式:必须用 () 包裹。结果为0表示假,非0表示真。
代码块:建议始终使用 {},即使只有一行代码,以防出错。
嵌套:if语句内部可以包含另一个if语句,用于处理复杂逻辑。注意:else 总是与前面最近的、未配对的 if 配对。
switch 语句
用于处理多个固定值的匹配。
格式:
switch (表达式) {
case 值1: 语句体1; break;
case 值2: 语句体2; break;
default: 语句体n+1; break; // 可选,一般放最后
}
执行流程:计算表达式的值,依次与 case 后的值比较,匹配则执行,遇到 break 结束。若无匹配,执行 default。
注意事项:
表达式类型:必须是整型或字符型(int, char),不能是浮点数。
case值:必须是常量表达式,不能是变量。
case穿透:如果 case 后没有 break,程序会继续执行下一个 case 的语句,直到遇到 break 或结束。
变量定义:case 后面不能直接定义变量,除非加上 {} 作用域。
if 与 switch 的选择
用 if:判断范围(如 score >= 60)、复杂逻辑(&&, ||)、大小关系。
用 switch:判断固定的几个离散值(如菜单选项、星期几)。
核心区别:if 像“筛子”过滤范围;switch 像“抽屉柜”匹配固定值。
三、循环结构 (重复)
用于重复执行某段代码。
for 循环
适用于已知循环次数的场景。
格式:for (初始化; 条件判断; 条件控制) { 循环体 }
执行流程:初始化 → 判断 → (真)执行循环体 → 条件控制 → 判断...
应用:打印1-100、求和、九九乘法表(嵌套循环)。
while 循环
适用于未知循环次数,但知道结束条件的场景。
格式:
初始化;
while (条件判断) {
循环体;
条件控制; // 注意:必须包含使循环趋于结束的语句,否则会陷入死循环
}
特点:先判断后执行,可能一次都不执行。
应用:猜数字游戏、折纸问题。
do-while 循环
适用于至少执行一次的场景。
格式:
初始化;
do {
循环体;
条件控制;
} while (条件判断);
特点:先执行后判断,循环体至少执行一次。
注意:while 后面有分号 ;。
三种循环的选择
for:知道循环次数(如跑10圈)。
while:不知道次数,只知道结束条件(如只要不下雨就一直跑)。
do-while:先做一次再判断(如先尝一口再问好不好吃)。
四、跳转语句
用于控制循环或流程的跳转。
break :跳出循环/switch,立即结束当前循环或 switch 语句。
continue :跳过本次循环剩余代码,直接进入下一次循环判断。注意:在 for 循环中执行 continue 会先执行“条件控制(表达式3)”再判断;在 while 中则直接跳到条件判断。
goto :无条件跳转到指定标签,不推荐使用,影响代码可读性。
五、综合练习:猜数小游戏
需求:系统生成1-100随机数,用户猜,提示大了或小了,直到猜中。
核心代码逻辑:
生成随机数:

include <stdlib.h> 和 #include <time.h>

srand((unsigned int)time(NULL)); // 设置随机种子,确保每次不同
int rn = rand() % 100 + 1; // 生成1-100的随机数
循环猜数:
使用 while(1) 死循环。
scanf 获取用户输入。
if...else if...else 判断大小。
猜中后 break 跳出循环。
六、核心知识点速记卡
if vs switch:范围判断用 if,固定值匹配用 switch。
switch穿透:case 后没 break 会继续执行下一个 case。
for vs while:知道次数用 for,不知道次数用 while。
do-while:至少执行一次,while 后有分号。
break:彻底结束循环或 switch。
continue:跳过本次,继续下次。
随机数:srand(time(NULL)) 设种子,rand() % 范围 + 偏移 取值。
死循环:for(;😉 或 while(1),需配合 break 使用。
学习建议:
多写代码:每个循环和分支结构都要动手写,特别是嵌套循环(如九九乘法表)。
理解逻辑:画图理解 for 和 while 的执行流程,特别是 continue 和 break 的区别。
实战应用:尝试自己写猜数字、计算器等小游戏,巩固流程控制的使用。

posted @ 2026-07-24 18:23  浅若曦曦~  阅读(7)  评论(2)    收藏  举报