第5章 第3节:do……while语句(课件)-《C语言程序设计》(电子工业出版社)上好课

2026-04-30
| 43页
| 44人阅读
| 0人下载
精品

内容正文:

5.3节:do……while语句 C语言程序设计 电子工业出版社 理解do…while语句的基本形式和执行过程 掌握do…while与while语句的区别与联系 能够运用do…while语句解决实际编程问题 能够根据问题需求选择合适的循环结构 培养逻辑思维能力和程序设计思维 养成严谨的编程习惯和代码调试能力 知识目标 能力目标 素养目标 01 01 01 学习目标 目录 Part 01 教学导入 Part 02 知识讲授 Part 03 师生互动 Part 04 课堂练习 Part 05 课堂小结 教学导入:动脑思考 如果我们想让一个动作至少执行一次,然后再判断是否继续,应该用什么循环? 生活中的例子:先吃一口饭,再决定是否继续吃。这就是一种典型的‘先执行,后判断’模式。 执行动作 判断是否继续? 💡 提示:回顾 while 循环的执行逻辑 教学导入:生活中的例子 先吃一口饭,再根据饱腹感决定是否继续吃。 这就是一种典型的“先执行,后判断”模式。 执行:先吃一口饭 判断:是否还饿? 满足条件则继续执行,否则结束 do...while 循环结构核心:至少执行一次循环体,再进行条件判断 教学导入 核心定义 do…while语句是一种“先执行,后判断”的循环结构。 先执行 进入循环体前不进行条件判断,直接执行一次循环体内容。 后判断 执行完一次后,再检查条件表达式,决定是否继续循环。 💡 关键点:保证循环体至少会被执行一次 知识讲授 do……while语句 do…while语句 do…while语句的应用 第一部分 do…while语句 知识讲授 知识讲授:do…while语句的一般形式 do{ 循环体语句; }while(表达式); 执行逻辑关键点 先执行一次循环体,再判断表达式的值。 语法易错点 while 后面的分号不能省略,这是语法规范。 知识讲授:do…while语句的执行流程 1. 执行循环体 程序首先进入循环体,执行其中的语句块。 2. 判断条件表达式 执行完一次循环后,检查条件是否成立(true/false)。 3. 条件为真(True) 返回到循环体开始处,继续执行下一次循环。 4. 条件为假(False) 退出循环,执行后续代码。 核心特点:先执行,后判断 —— 循环体至少会被执行一次 知识讲授:do…while语句的执行流程 1. 执行循环体 程序首先执行do后面的循环体语句,这是 do-while 循环的特点:先执行,后判断。 2. 判断表达式 执行完循环体后,计算while后面括号内表达式的值,以此决定循环的去向。 3. 循环或退出 如果表达式值为真 (非0),返回到步骤1继续执行循环体。 如果表达式值为假 (0),则退出循环,执行后续代码。 知识讲授:do…while与while语句的对比 知识讲授:do…while与while语句的对比 while 语句:先判断后执行 while (表达式) { 循环体语句; } 特点:如果条件一开始不满足,循环体一次都不会执行。 do…while 语句:先执行后判断 do { 循环体语句; } while (表达式); 特点:无论条件是否满足,循环体至少会被执行一次。 核心区别:while是“先判断后执行”,do…while是“先执行后判断”。 知识讲授:do…while与while语句的对比 程序文本:do…while语句 #include <stdio.h> main( ) { char ch ; printf("使用do…while语句 "); printf("输入若干字符(‘*’结束). "); ch=getchar() ; do { putchar(ch) ; ch=getchar( ) ; }while(ch!='*'); } 程序文本:while语句 #include <stdio.h> main( ) { char ch ; printf("使用while语句 "); printf("输入若干字符(‘*’结束). "); ch=getchar() ; while(ch!='*') { putchar(ch); ch=getchar( ); } } 知识讲授:do…while与while语句的对比 ch!=‘*’ 真 假 输出ch 输入ch值 定义变量 结束 开始 输入ch 真 假 输出ch 输入ch值 定义变量 结束 开始 输入ch ch!=‘*’ 知识讲授:do…while与while语句的对比 知识讲授:do…while与while语句的核心区别 特性 while 语句 do…while 语句 执行顺序 先判断,后执行 先执行,后判断 循环体执行次数 0次或多次 至少1次 适用场景 循环次数不确定,可能一次都不执行 循环体至少需要执行一次的场景 核心差异点:while 循环的循环体可能一次都不执行,而 do…while 循环的循环体至少会执行一次。 背诵记忆 do…while语句的形式 do { ... } while (表达式); 注意末尾的分号 执行过程 先无条件执行一次循环体,再判断条件表达式是否成立 核心特点 循环体至少执行一次,这是与while语句最大的区别点 与while的区别 while先判断后执行,do-while先执行后判断;执行次数可能不同 例题分析:计算2+4+6+…+100 运行结果: sum = 2550 程序文本【5.3】计算2+4+6+…+100 #include "stdio.h" main() { int i=2, sum=0; do { sum=sum+i; i=i+2; }while(i<=100); printf("sum=%d",sum); } 真 假 sum=sum+i; i=i+2; 输出:sum i=2,sum=0 结束 开始 i<=100 例题分析:计算2+4+6+…+100 例题分析:计算2+4+6+…+100(代码逻辑详解) 1. 初始化 i=2(首个偶数) sum=0(累加和清零) 2. 循环体 sum += i (累加偶数) i += 2 (生成下一个偶数) 3. 循环条件 while(i <= 100) 判断i是否在范围内 4. 输出结果 循环结束后 打印sum最终值 💡 核心逻辑总结: 该代码通过“初始化-判断-执行-更新”的标准循环流程,高效计算了 2 到 100 之间所有偶数的累加和。其中,i += 2是关键的步长控制,确保只遍历偶数,避免了额外的奇偶判断开销。 课堂问答 Q1:do…while循环的循环体至少执行几次? A1:至少执行一次。 Q2:在什么情况下,while循环和do…while循环的执行结果不同? A2:当while后面的表达式一开始就为假(0值)时,两种循环的结果不同。此时while循环一次都不执行,而do…while循环至少执行一次。 课堂练习 题目要求 用do…while语句实现输入一个整数,判断其是否为素数。 解题思路 1. 输入与定义 输入整数 n;定义除数变量 i=2,标志位 flag=1。 2. do…while 循环判断 若 n%i==0,说明非素数,flag=0,break;否则i++。循环至i<= sqrt(n)。 3. 输出结果 根据 flag 的值输出“是素数”或“不是素数”。 提示:素数(质数)定义为大于1的自然数,除了1和它本身,不能被其他自然数整除。 课堂练习 int n,i=2,flag=1; 开始 输入:n n%i==0 真 假 flag=0; break; i++; i<=n/2 真 假 flag==1 是素数 不是素数 真 假 结束 if do…while while if 课堂练习 程序文本:判断是否为素数 #include <stdio.h> main() { int n, i = 2, flag = 1; printf("请输入一个整数:"); scanf("%d", &n); do { if (n % i == 0) { flag = 0; break; } i++; } while (i <= n / 2); if (flag == 1) printf("%d是素数 ", n); else printf("%d不是素数 ", n); } 课堂练习 第二部分 知识讲授 do…while语句的应用 知识讲授:分数数列求和 题目描述 有一分数数列:…… 请编写程序求出这个数列前20项之和。 规律分析 分子规律:前两项分子之和等于后一项分子(斐波那契数列)。 分母规律:前一项的分子等于后一项的分母。 编程解题思路 1.变量初始化:设置分子(a=2)、分母(b=1)、总和(sum=0)、循环变量(i=1)。 2.循环计算:利用循环执行20次,每次累加 a/b 到总和,然后更新分子和分母(t=a; a=a+b; b=t)。 3.输出结果:循环结束后,格式化输出总和。 知识讲授:分数数列求和 程序文本【5.4】分数数列求和(前20项) #include "stdio.h" main() { int i=0,t,n=20; float a=2,b=1,s=0; do { s = s + a/b;// 累加 t = a; a = a + b; b = t;// 更新 i++; } while(i < n); printf("sum=%9.6f ",s); } i<=20 真 假 输出t s=s+a/b; int i=0,t,n=20; float a=2,b=1,s=0; 结束 开始 t=a; a=a+b; b=t; i++; 知识讲授:分数数列求和 知识讲授:猴子吃桃问题 题目描述 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃前一天剩下的一半零一个。到第10天早上想再吃时,只剩一个桃子了。求第一天共摘了多少个桃子。 逆向思维分析 正向思考需列复杂方程,采用逆向递推更高效:已知第10天只剩1个桃子,倒推前一天的数量。 递推公式:前一天桃子数 = (后一天桃子数 + 1) × 2 💡 解题关键:利用已知的最终状态(第10天),通过递推公式循环计算9次,即可得到第一天的桃子总数。 知识讲授:猴子吃桃问题 day>0 真 假 输出x1 int day=9,x1,x2=1; 结束 开始 x1=(x2+1)*2; x2=x1; day - -; 核心递推逻辑 递推公式: 前一天 = (后一天 + 1) × 2 1.倒推法:从第10天仅剩1个桃子开始反向推导。 2.循环控制:循环9次(day从9递减到0),每次计算前一天的桃子数。 3.变量更新:通过 x1=(x2+1)*2 不断迭代更新桃子数量。 知识讲授:猴子吃桃问题 程序文本【5.5】猴子吃桃问题 #include "stdio.h" main() { int day,x1,x2; day=9; x2=1; do { x1=(x2+1)*2; x2=x1; day--; } while(day>0); printf("total=%d ",x1); } 知识讲授:猴子吃桃问题 知识讲授:do…while语句的应用场景总结 循环体至少需要执行一次的场景 典型案例:用户输入验证、游戏交互界面初始化等,必须先执行一次操作再判断。 逆向递推问题 典型案例:猴子吃桃问题、数学数列逆推等,已知结果需要从后向前推导过程。 需要先获取数据再进行判断的场景 典型案例:读取传感器数据、读取用户输入后验证有效性,必须先获取值才能校验。 课堂练习:小球落地反弹问题 题目描述 一个小球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。 请计算: 它在第10次落地时,共经过多少米? 第10次反弹多高? 提示:这是一个典型的等比数列求和问题,注意区分“落地经过距离”与“反弹高度”的不同。 课堂练习:小球落地反弹问题 i<=10 真 假 输出:distance; 输出:height/2; height=100.0; distance=100.0; i=2; 结束 开始 height/=2; distance+=2*height; i++; 课堂练习:小球落地反弹问题 程序文本:小球落地反弹问题 #include <stdio.h> main() { float height = 100.0; // 初始高度 float distance = 100.0; // 总距离,初始为第一次下落的高度 int i = 2; // 从第二次落地开始计算反弹和下落 do { height /= 2; // 反弹高度 distance += 2 * height; // 反弹和下落的距离 i++; } while (i <= 10); printf("第10次落地时,共经过:%.2f米 ", distance); printf("第10次反弹高度:%.2f米 ", height / 2); } 课堂练习:小球落地反弹问题 课堂小结 课堂小结 核心结构 do...while是一种“先执行,后判断”的循环结构。先执行一次循环体,再根据条件表达式判断是否继续循环,这是它与while循环的根本区别。 关键特性 保证循环体至少执行一次。无论条件是否成立,do...while循环都会至少执行一次循环体,确保必须执行的操作得以执行。 适用场景 适用于循环体必须执行一次的场景,如用户输入验证、游戏交互初始化等。使用do...while循环可以先获取输入,再进行验证。 学习目标 掌握其语法格式、执行流程,并能灵活应用于实际编程问题。能独立编写程序并理解其逻辑,根据问题需求选择合适的循环结构。 课后任务 基础巩固 使用do...while语句计算1到50的所有奇数的和。 能力提升 编写程序实现简单的密码验证功能,用户最多有3次输入机会。 拓展应用 统计用户输入的一行文字中有多少个单词(单词之间用空格分隔)。 谢谢观看 THANKS $

资源预览图

第5章 第3节:do……while语句(课件)-《C语言程序设计》(电子工业出版社)上好课
1
第5章 第3节:do……while语句(课件)-《C语言程序设计》(电子工业出版社)上好课
2
第5章 第3节:do……while语句(课件)-《C语言程序设计》(电子工业出版社)上好课
3
第5章 第3节:do……while语句(课件)-《C语言程序设计》(电子工业出版社)上好课
4
第5章 第3节:do……while语句(课件)-《C语言程序设计》(电子工业出版社)上好课
5
第5章 第3节:do……while语句(课件)-《C语言程序设计》(电子工业出版社)上好课
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。