简介:这是一份面向C语言初学者的循环结构教学PPT,围绕while、do-while、for三种基本循环展开,并结合break与continue语句讲解循环流程控制。内容以课堂讲义形式呈现,共15页,先讲清每种循环的语法格式与执行过程,再通过多个典型例题展示实际应用:例5.2求1到100累加和、例5.3循环求和、例5.4输出100到200间不能被3整除的数、例5.5辗转相除法求最大公约数、例5.6求100到200间素数、例5.8求1000以内完数等,覆盖循环嵌套、循环终止与跳过等易错点。课件还比较了while与do-while的差异,并说明for表达式的省略写法与死循环风险,同时指出了do-while至少执行一次、while可能一次也不执行、break直接跳出循环、continue仅跳过本次迭代等易混点,便于学习者避开常见误区。资源为单个PPTX文件,大小仅148KB,便于下载后在本地或课堂直接放映。已有71人学习浏览,非常适合C语言初学者复习巩固,对理解循环执行流程和break与continue的区别很有帮助。
1. 循环结构这张 PPT 最难画的是“时间感”
循环结构在语法上只占几行,真正难讲的是“过程”:条件判断发生在哪一刻、变量在哪一行被更新、循环体执行完毕之后控制流回到哪里。静态 PPT 天然只能展示“某一时刻”的画面,学的人看到的是一片流程框,却看不见初值和步进在两轮迭代之间如何互相拉扯。这可能就是“循环结构”课件讲完学生仍然写不对的原因:知识到了,过程感没到。这篇内容面向要给学生讲循环结构的老师、做技术新人培训的工程师,以及需要把循环结构做成可复习材料的分享者。核心思路是先定认知模型,再用动画模拟执行流,最后用 desk check 练习把“看懂图”变成“写得出”。
2. 先立骨架:循环结构课件开做之前,把三件事钉死在结构里
一份循环结构 PPT 的好坏,在打开 PowerPoint 之前就注定了一半。把“初值、条件、步进”整理成主线,再选一个能从头用到尾的主案例,剩下的事情都围绕这两个决定展开。
2.1 循环结构的三要素决定课件大纲:初值、条件、步进
循环结构可以拆成三个要素:循环变量的初值、继续执行的条件、每轮循环结束后对循环变量的更新。课件大纲按这个顺序排,比按语法形式排更稳。原因很简单:for、while、do-while 只是同一个机制的不同表达,如果先按语法形式讲,学生看到的是三套规则;按三要素讲,学生看到的是同一个机制换了三件外衣。
我会在课件第 2 页放一张三要素对应表,把每个要素对到 for 写法里的一个位置。以 Python 为例:
# 循环三要素与 for 写法的对应 for i in range(0, 5, 1): # 初值:0;条件:i < 5;步进:i += 1 print(i) # 循环体表格可以设计成三列:要素、在 for 里的位置、在 while 里的位置。for 循环的初值写在 range 的第一个参数,条件由 range 的长度隐式决定,步进写在第三个参数;而 while 循环里三个要素全部由自己维护,少写任何一个都可能变成死循环。这个对照表就是整章 PPT 的骨架,后面每张幻灯片都在回应这张表。
提示:课件大纲的每一个二级标题,最好能对应三要素中的至少一个。出现“其他注意事项”这种章节,说明前面的结构没有排干净。
2.2 主案例选择原则:一个案例贯穿全章,而不是每个语法点换一个
常见做法是一个知识点配一个新例子,循环讲解时反而是大忌。每次换例子,学生都要重新理解问题背景,真正用在循环机制上的注意力反而被稀释了。一个主案例走完全程,学生才可能把注意力放在“这段代码为什么这样变”上。
选主案例有三个标准:第一,用两种以上循环实现时都自然,不要为了 while 而硬凑;第二,循环次数能被口算出来,课堂上能心算验证;第三,案例本身有视觉化潜力,能在 PPT 上画出每轮的变化。我常用的是累加求和:计算 1 到 n 的和,n 取 5。这个案例条件简单,学生口算就知道答案是 15,重点就可以完全放在变量的逐步变化上。
主案例确定之后,所有语法变体都挂在它的下面。for 版讲一遍,while 版改两行再讲一遍,do-while 版强调“至少执行一次”的差异。同一段逻辑在不同写法间的转换,就是循环结构课件里最有价值的内容,比引入十个孤立的例子有效得多。
2.3 for、while、do-while 的课时分配与讲解顺序
三种循环在工程里的使用频率差异很大。按“讲烂的放后面”的顺序排,先讲 while,再讲 for,最后讲不常用但必须认识的 do-while,效果通常好于先 for 后 while。原因是 while 的三要素全部显式裸露,初值和步进写在明面上,学生更容易建立“循环是手动控制变量”的直觉。for 则把三要素的写法做了语法压缩,先讲 for 容易让人觉得循环是语法机制而非控制流程。
课件里的课时分配可以参照这张表:
| 循环类型 | 讲解定位 | 代码形态 | 常见误用点 |
|---|---|---|---|
| while | 主力,先建立三要素直觉 | 初值/条件/更新全部显式 | 忘记写更新语句导致死循环 |
| for | 主力,强调紧凑写法 | 三要素内聚在头部 | range 边界多算一格或少算一格 |
| do-while | 概念补全,强调“先执行后判断” | 至少执行一次 | 误以为与 while 等价 |
讲解顺序确定为 while 建立模型、for 引入语法糖、do-while 补边界。这样每一章都在已有认知上加增量,而不是重新建一套模型。
2.4 把 PPT 的章节页做成“问题页”,而不是“目录页”
很多循环结构 PPT 的章节页写的是“什么是 while 循环”,换成问句“每一轮循环开始前提什么条件”之后,学生带着问题看后续内容,记忆效果差别很大。我习惯把三要素的对应表放在第一章节目录页,并且在章节页插入一个“追踪预告”:把主案例第一轮的变量值写出来。这页出现时学生会产生一个疑问,后面翻到动画演示时自然得到回答。
章节页一般做三到五页就够。页数过多会导致每页信息量被稀释。章节页的视觉重心放在那个问题句上,而不是章节编号上;章节编号通常已经在导航栏或页脚里,不需要再占一次大标题的位置。
3. 用 PPT 动画模拟循环执行流:三种做法与参数细节
PPT 动画的目标不是“好看”,而是让循环体在视觉上“动起来”。循环结构在黑板上的常规画法是画流程箭头,到 PPT 里箭头仍然是静态的,需要让高亮色块沿着箭头移动才行。这里给出三种常见的实现方案。
3.1 方法一:变量追踪表逐步显形,模拟每次迭代后变量值
变量追踪表是循环教学里最经典的手工执行方法,在 PPT 里可以把它做成“按点击逐行出现”的表格。一行展示一轮迭代后各变量的值:
轮次 | i 的值 | 累加和 | 条件 i < 5 是否成立 初始 | 0 | 0 | 成立,进入循环体 第 1 轮 | 1 | 1 | 成立,进入循环体 第 2 轮 | 2 | 3 | 成立,进入循环体 第 3 轮 | 3 | 6 | 成立,进入循环体 第 4 轮 | 4 | 10 | 成立,进入循环体 第 5 轮 | 5 | 15 | 不成立,循环结束这六行做成六次单击出现,每一次出现都停住让学生心算下一行的值。操作上是把每一行设置成“单击时淡入”,持续时间为 0.3 到 0.5 秒,“开始”选项选“单击鼠标时”,不要选“与上一动画同时”。选“上一动画之后”也可以,但那样演示节奏就不受控制,学生还没来得及思考下一轮的数值。
给这六行加上编号文本,比如“第 1 轮”,并让“i 的值”列和“累加和”列的颜色做一个对比,这样注意力会自然集中在变化的两列上。条件列是布尔值,适合用同一个颜色统一标出,引导观察条件只负责判断是否继续。
提示:追迹表的一行就是一个“时间切片”。行与行之间的过渡动画不要太花哨,闪烁和缩放都会干扰学生把注意力留在数值变化上。
3.2 方法二:流程图光斑移动,让“当前执行到哪一步”可见
循环结构对应一张流程图:初始化、条件判断、循环体、更新。流程图的每条边都画出来,然后让一个半透明色块在边上移动。这个色块对应 CPU 里“程序计数器”的概念,在循环的语境里叫“当前执行位置”。
在 PPT 里给色块添加路径动画,设置一条从“初始化”节点到“条件判断”节点再到“循环体”节点再到“更新”节点再回到“条件判断”节点的折线路径。技术要点是路径的终点最好停在“条件判断”节点上,以便表达“每一轮都要重新判断”这个语义,而不是一路走到“结束”。路径动画的“平滑结束”参数改成 0 秒,让色块的移动更像计算机执行指令时有节拍的停顿,而不是圆滑的流动。
色块到达判断节点后,下一轮单击再移动。用“触发器”实现更合适:给下一步的操作按钮设触发器,单击“下一步”色块移动一次。这样重复点击时色块沿着流程转圈,学生能看到循环体执行了一圈之后又回到“条件判断”,这个“回到”的视觉冲击力比任何文字说明都好。
3.3 方法三:循环不变量的标注,把“为什么不会死循环”画出来
循环最难的部分是理解条件可能会在某轮之后突然失败。课件里常见的问题是把条件画成一个“开关”,但开关的状态不解释变化原因。更有效的是在流程图旁边标注循环不变量和变化趋势:例如 i 从 0 开始每次加 1,那么 i 与 5 之间的大小关系每轮缩小一点。
做法分两步。第一步,在条件判断节点旁边加一条注释,“i 继续增加,最终将超过 5”;第二步,在“更新”节点旁边放一个趋势箭头,上面写“i := i + 1”。这两条注释一起出现时,学生才能把“更新会让 i 变大”和“i 变大后条件会失败”两件事连接起来。许多死循环错误的根源,就是学生只看到了条件判断,没看到更新语句对条件的影响。
这个标注同样用动画完成:先出现更新节点旁的箭头,再出现判断节点旁的注释文字。两者出现的顺序不要颠倒,顺序就是因果关系的顺序。
3.4 动画参数的统一约定:一套参数跑完整个讲解
动画参数不统一,课堂演示时会显得混乱,更重要的是会增加制作成本。一套参数跑完整个课件,维护成本低,看起来也专业。我通常约定这样一组参数:
| 动画对象 | 动画类型 | 持续时间 | 开始方式 |
|---|---|---|---|
| 变量追踪表的一行 | 淡出 | 0.3 秒 | 单击鼠标时 |
| 流程图移动光斑 | 直线或自定义路径 | 0.8 秒 | 触发器 |
| 关键注释 | 擦除(自左侧) | 0.4 秒 | 上一动画之后 |
| 代码逐行出现 | 出现 | 0.2 秒 | 单击鼠标时 |
参数不是死规矩,但建议遵循一个原则:涉及“当前值变化”的动画要快,涉及条件判断的动画要慢。变量追踪表 0.3 秒出现后学生要迅速看到数值,条件判断处停得久一些,给学生留出判断预期的时间。用触发器控制流程图的移动是最常见的做法,因为触发器能让色块路径在任意时刻暂停,问到哪停到哪。
4. 代码块、截图与文字编排:循环结构课件的版式避坑指南
课件的“内容”做对了,版式上还是有大坑。尤其循环结构涉及代码块和流程图两类内容,混排时的间距、字号、高亮方式都直接影响阅读节奏。
4.1 三种代码展示方案:等宽文本、语法高亮图片、代码插件对比
循环结构的课件里,代码排版方式有三种常见选项。第一种是直接把代码做成等宽字体文本,粘贴到文本框里,不保留语法高亮。优点是编辑方便、改动后马上生效,缺点是长代码行在不得已时会发生自动换行,影响结构判断。第二种是把 IDE 里复制过来的高亮代码截图成图片。显示效果最好但修改成本最高,一处小改动就要重新截图。第三种是用 PowerPoint 的代码插件动态插入。这种方式能保持高亮且可编辑,但需要每位使用者都安装同一插件,课件传给其他人时要考虑兼容性问题。
我的建议是主案例用等宽文本,变体代码用截图,插件覆盖看团队条件。以 14 号字号为基准,等宽文本每行不要超过 28 个字符左右,超过就得拆行或缩小字号。while 循环的三要素分布在不同行,拆行时尤其注意维护条件结构可读性,比如:
# 过长条件时换行,保持缩进层次 while ( score >= 0 and score <= 100 ): total += score count += 1这段代码展示了条件表达式过长时的换行格式。注意逻辑运算符留在行尾和行首的取舍,风格上保持一致就行,关键是条件的两部分在视觉上处于同一层次,学生能一眼看出这两个子条件同时成立才继续循环。
4.2 循环结构代码的中文批注排版规范
循环代码里的中文注释很容易出现换行错位和对齐混乱。如果每个注释用独立文本框摆放,要么与代码行错位,要么位置反复微调。常见做法是注释与代码放在同一个文本框里,使用与代码相同的等宽字体,字号比代码小一号,颜色统一为灰色。
值得注意的细节是中文注释在等宽字体下与英文代码宽度不一致,对齐上不要追求注释左边缘完全齐平,只要不与代码行粘连即可。比如 Python 代码里i += 1 # 步进更新在视觉上无法和上一行严格左对齐,不要花时间手动加空格补位。
提示:中文注释避免使用斜体。中文字体在 PPT 里的斜体渲染大多直接变成机械倾斜,观感模糊。
4.3 给循环关键字建立颜色语义,一套配色贯穿全篇
循环结构的代码配色可以定义一个三色规则:循环关键字用同一种颜色、循环变量用第二种颜色、普通变量用第三种颜色。比如 for、while、in 用深蓝色,循环变量 i 用深红色,普通计算变量用默认黑。这个规则要在课件第一份代码处就建立,并保持到最后一个练习。
我一般会在母版里预设三个字符样式,而不在每一页临时重新选色。文本高亮和字体颜色在 PPT 里没有“样式”概念,调整的方法是先选中一个字符设置好颜色,再连续选中其他文本按下 F4 键就可以快速重复上一次的格式设置。三色规则让学生看到红色代码时本能地警觉“这是循环变量”,对理解循环体内的赋值更新很有帮助。
这个颜色方案也要用于图表图形,不要只用于代码文本。流程图中框选出的更新语句节点,用与循环变量相同的红色描边,代码和流程之间就建立了对应。色弱学生可以在红色上增加一条下划线,避免只依靠颜色区分。
4.4 放映前的导出与加密处理收尾
循环结构课件常要发给学生课后复习,导出 PDF 与保护演示文稿的操作就在这个时候做。PPT 里如果使用大量动画转场,导出 PDF 时这些动效都会丢失,只保留最终状态。动画设计得比较精致的循环结构课件,导出的 PDF 里演示步骤会变得不可读,务必同时在结尾页附上静态的完整代码与追踪表。
“把 PPT 里导出的 PNG 图片放到 PDF 里之后变模糊”是一个常见坑。这是因为导出 PNG 时按页面对齐像素输出,文字被放大到 150% 以上模糊。处理办法是在导出前把查看比例调到 100%,或者在 PowerPoint 选项里把默认分辨率设置为“高保真”,再做一次另存为图片的操作。如果课件被加密打不开,优先检查加密属性。常见的加密有“限制编辑”和“打开密码”两种,限制编辑模式下可通过“审阅—限制编辑”检查而直接取消勾选;忘记打开密码时没有官方解途径,在课件分发前就把备份密码注释写到同一目录的 README 文件里,是更稳妥的做法。
5. 从“看懂 PPT”到“写得出循环”:两类练习与课堂验证方法
课件放映结束不等于教学完成。循环结构必须有学生亲手填表、亲手跑代码的环节,建议在课件末尾单独做两页“陷阱练习”,一页是手工追踪,一页是等价改写。
第一页设计成 desk check 表。给出下面这段循环,要求学生计算 sum 的最终值:
n = 10 total = 0 i = 1 while i <= n: if i % 2 == 0: total += i i += 1这道题叠加了“偶数和”的判断逻辑,学生需要同时追踪 i、判断条件和 total 三个量。课堂上让学生先在纸上填表再翻到下一页看答案。这个环节比“看 PPT 动画”更能检验是否真正掌握,因为动画是别人做好的过程,追踪表是自己执行的过程。
第二页是 for 与 while 的互改练习。一个实用的例子是凯撒密码加密中的循环结构。加密一个字符串里的每个字符,for 写法直观:
def caesar_encrypt(text, shift): result = "" for ch in text: if ch.isalpha(): base = ord('A') if ch.isupper() else ord('a') result += chr((ord(ch) - base + shift) % 26 + base) else: result += ch return result这段代码里循环变量是 ch,逐字符扫描输入字符串。条件判断隐藏在ch.isalpha()里,步进则由 for 循环自动完成。让学生把它改写为 while,关键差异就暴露在“步进更新要自己写”上。
def caesar_encrypt_while(text, shift): result = "" index = 0 while index < len(text): ch = text[index] if ch.isalpha(): base = ord('A') if ch.isupper() else ord('a') result += chr((ord(ch) - base + shift) % 26 + base) else: result += ch index += 1 # 手动维护步进,漏掉这一行就变成死循环 return resultwhile 版本的主线是用index手动控制字符串的访问位置,每一轮执行完index += 1,才能在index < len(text)条件不成立时退出循环。写错这个位置的步进,要么死循环、要么跳字符,这是比计算结果是否正确更快暴露问题的方式。课堂上让两位同学交换检查对方的 index 更新位置,德育效果比老师批改更直接。
最后一页把 PPT 停在 desk check 答案表上,让学生对着自己的填空逐项核对,循环结构这一章的学习闭环就落到了实处。
本文还有配套的精品资源,点击获取