版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序的重复之美—循环结构程序设计C语言程序设计第五章本章目录01.while循环02.do…while循环03.for循环04.多重循环05.break语句和continue语句06.趣味实例5.1while循环语句学习while循环的语法、执行流程和使用方法while循环的语法与执行流程书写格式
while(表达式){语句序列(循环体)//需包含改变条件的语句}执行流程解析1.条件判断:计算表达式,若为假(0)直接跳出循环。2.执行循环体:若条件为真(非0),执行循环体。3.循环往复:执行完毕后,返回步骤1再次判断条件。关键特点与避坑指南1.先判断后执行,初始条件为假则不执行。2.务必包含改变条件的语句(如i++),防止死循环。while循环的使用注意事项1)循环前,必须给循环变量赋初值。2)若循环体包含一条以上的语句,应以复合语句形式出现。3)循环体中,必须有改变循环变量值的语句(使循环趋向结束的语句),否则会陷入无限循环。4)while循环的特点是先判断条件表达式,后执行循环体语句,因此循环体有可能一次也不执行。5)无限循环:while(1)循环体;6)循环体可以为空。例:while((c=getchar())!='A');实例体验:例
5-1
观察下列程序。1)找出循环结构的三要素:循环体、循环变量及循环结束条件。2)写出该程序完成的功能。程序代码#include<stdio.h>main(){inti=3;intsum=0;while(i<100){sum=sum+i;i+=3;}printf("sum=%d\n",sum);}实例体验:问题描述:毫厘与千里一年365天,能力值的基数记为1。当好好学习一天时,能力值相比前一天提高1%;当没有好好学习时,能力值相比前一天下降1%,每天努力学习和每天放任自流,一年下来能力值相差多少呢?例5-2
编程实现计算能力值。实例体验:
实例体验:程序代码:#include<stdio.h>main(){intday=1;floatpositive=1,negative=1;while(day<=365){day++;positive=positive*1.01;negative=negative*0.99;printf("每天进步一点点,一年后能力值为:%.2f\n",positive);printf("每天退步一点点,一年后能力值为:%,2f\n",negative);}}5.2do…while循环语句学习do-while循环的语法、执行流程,并与while循环进行比较do…while循环的语法与执行流程书写格式do{循环体}while(条件表达式);//注意末尾分号核心特点与注意事项执行逻辑:先执行循环体,后判断条件表达式的值。保底执行:无论初始条件是否为真,循环体至少执行一次。语法规范:while表达式末尾必须有分号;。执行流程图解流程简述:执行循环体→判断条件真假→为真则重复执行,为假则跳出循环。do…while循环的使用注意事项do…while循环与while循环类似,使用do…while循环时要注意的事项:1)使用注意事项同while循环。2)while语句后的分号必须有,不要漏掉。循环体只有一个语句,也不能省略花括号。实例体验:例5-3
使用
do…while
语句计算
1+2+3+…+100。分析:
根据题意,结合顺序结构的设计思路,该题为累加求和的问题,即s=1+2+3+…+100。s=0s=s+1s=s+2s=s+3…程序代码#include<stdio.h>main(){inti=1,s=0;do{s=s+i;i++;}while(i<=100);//循环结束条件printf("s=%d\n",s);}可写成通项式:s=s+iliuchengtu流程图实例体验:问题描述:网贷的危害大学生王林看上一款8000多元的手机,因家庭暂时难以承担这笔费用,便动了网络贷款的念头。某“校园贷”宣称无需抵押,日利率仅千分之五(贷款1000元每日利息5元)。王林觉得贷10000元,日息50元,自己节省生活开支就能很快还清,于是签订了12个月的还款协议。事情真会如王林所想吗?12个月后王林需要偿还多少金额?例
5-4
编程计算网贷利息。实例体验:分析:根据题意,第一天还息10000元的0.5%为50元,第二天还息为(10000+50)元的0.5%,解题思路同例题5-2。流程图(见图5-5)。实例体验:程序代码:#include<stdio.h>main(){floatmoney=10000;li=0.005;intday=0;do{day++;money=money*(1+li);}while(day<365);printf("12个月后本金加利息共计%9.2lf\n",money);}5.3for循环语句学习for循环的语法、执行流程,掌握其在计数循环中的应用for循环的语法与执行流程书写格式for(表达式1;表达式2;表达式3){循环体;//执行任务}表达式1(初始化):只执行一次,设置循环起点。表达式2(条件判断):每次循环前判断,决定是否继续。表达式3(更新变量):循环体执行后更新,迈向终点。特点:结构紧凑,可读性高,是计数循环的首选。表达式1:初始化变量,进入循环准备状态表达式2:判断条件真假,假则跳出,真则执行循环体表达式3:更新变量,返回步骤2再次判断,形成闭环参数说明和特点for循环使用注意事项1)表达式1、表达式2和表达式3之间是用分号“;”隔开的。表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式。表达式2一般是关系表达式或逻辑表达式,也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。2)“表达式1”可以省略,但表达式1后的分号不能省略。例如:for(;i<=100;i++)。由于省略了表达式1,没有对循环变量赋初值,因此,为了能正常执行循环,应在for语句之前给循环变量赋以初值。3)表达式2也可以省略,即不设置和检查循环的条件。此时循环无终止地进行下去,也就是认为表达式2始终为真。4)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。5)for语句的循环体可为空语句。此时可把本来要在循环体内处理的内容放在表达式3中,也可以写成“for(i=1;i<=100;i++);”,说明循环体全空。实例体验:例
5-5
从键盘输入
10
个整数,求其和。分析:
10个整数求和类似1+2+3+…+100的累加计算。此处被加项的数值不是规律的数字,因此不能用例5-2中的循环变量充当被加项,此处可用另一个变量替代。同时依次给该变量赋值,加入总和中即可。程序代码#include<stdio.h>main(){intsum,num,i;printf("从键盘上输入10个整数:\n");sum=0;for(i=1;i<=10;i++){scanf("%d",&num);sum=sum+num;}printf("这10个整数的和为:%d\n",sum);}liuchengtu流程图实例体验:问题描述:爱护树木,人人有责我们都知道,树木具有吸收二氧化碳并释放氧气的功能,能减少温室气体,缓解热效应。不同种类的树木吸收二氧化碳量存在差异,假设一棵树每年能吸收22kg的二氧化碳,那100棵树每年总共吸收多少二氧化碳呢?例
5-6
编程计算大树每年吸收多少二氧化碳。实例体验:分析:本题计算较为简单,可用加法,100棵树的吸收量是100个22相加,根据例5-5的编程思路,用for循环很容易实现。当然也可以用乘法,就是100*22,用顺序结构编程也可实现,这里我们用循环,再次体验for循环的魅力。流程图(见图5-8)实例体验:程序代码:#include<stdio.h>intmain(){inttrees=100;//假设有100棵树,此处用变量,便于修改//不同数量值inti,sum=0,CO2=22;//每棵树每年吸收22kg二氧化碳for(i=1;i<=trees;i++){sum=sum+CO2;}printf("100棵树每年总共吸收二氧化碳:%dkg\n",sum);}5.4多重循环理解循环嵌套的概念和执行流程多重循环核心定义在一个循环的循环体中包含另一个完整循环。外层循环控制大流程,内层循环处理细节。执行过程外层循环每执行一次,内层循环必须完整执行一遍(从条件成立到不成立)。常见组合形式支持多种组合:while嵌套while、for嵌套for、while与for相互嵌套。关键注意事项内循环全包含在外循环里;内层与外层循环变量严禁重名;嵌套层数不宜过深,影响可读性。实例体验:例5-8打印九九乘法表分析双重循环结构外层循环(i)控制行数(1-9),内层循环(j)控制列数(1-i),确保列数不超过行数。格式化输出使用printf格式化字符串,设置宽度对齐(如%-4d),保证表格整齐美观。换行控制内层循环结束后,执行printf("\n")换行,开始打印下一行数据。C语言实现代码#include<stdio.h>main(){inti,j;//外层循环控制行数for(i=1;i<=9;i++){//内层循环控制列数for(j=1;j<=i;j++){printf("%d*%d=%-4d",j,i,j*i);}printf("\n");//换行}}5.5break和continue语句学习如何使用break和continue语句控制循环的执行流程break和continue语句break语句:结束整个循环功能:跳出并结束当前所在的循环结构或switch语句。机制:执行时立即跳出包含它的最内层循环,循环终止,开始执行后续代码。continue语句:结束本次循环功能:跳过当前循环的剩余语句,直接开始下一次循环的条件判断。机制:不执行后续语句,直接跳转到循环的更新或条件判断部分。实例体验:例5-9
问题描述:某次班级开展“继承革命传统传承红色基因”主题班会,设置答题活动,其中一个问题为:长征的年份是哪一年?每人5次回答机会。请根据要求编写程序。分析:for语句指定执行循环体5次。每次循环中,输入一个答案,并将答案与正确答案比对。设置了if语句,若输入答案与正确答案一致就执行break语句,流程跳出当前循环,提前结束循环。实例体验:程序代码:#include<stdio.h>main(){inti;intsuccess=0;//初始成功次数为0printf("请回答问题:长征的年份是哪一年?你将有5次机会回答这个问题。\n");for(i=1;i<=5;i++){printf("尝试次数%d:长征的年份是哪一年?\n",i);scanf("%d",&success);if(success==1934){printf("恭喜你,正确答对了长征的年份!\n");break;//当用户正确回答时,跳出循环}else{if(i==5&&success!=1934){printf("很遗憾,你没有在指定的次数内答对长征的年份,请继续努力。\n");break;//5次均答错,跳出当前循环}//如果用户回答错误,给予提示并继续尝试printf("不正确,请再尝试一次。记住,坚持就是胜利!\n");}}}5.6趣味实例—猴子吃桃编程通过具体实例,学习如何编写循环结构的C语言程序趣味实例实训目的1.了解循环程序的基本结构。2.熟悉while语句、do…while语句、for语句的结构和实现循环的编程方法。3.了解循环语句的运行顺序及编程中的注意事项。实训内容1.基础训练猴子摘下若干桃子,第1天吃了4个;第2天比第1天多吃了一个,依次类推,
一共吃了10天,把桃子都吃完了。1)猴子一共摘了多少个桃子?2)将猴子每天吃的桃子数量,用图形的方式表示出来。2.提升训练猴子在第1天摘下若干桃子,当即吃了一半,还没吃饱,又多吃了一个;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会员制农场项目可行性研究报告
- 《高血压患者教育》课件
- 人力资源第八章薪酬管理
- 国家二级田径裁判培训资料
- 反相器电路版图及特性
- 实验七黏度法测定高分子化合物的摩尔质量
- 《钢结构设计规范》修订
- 东财会计第四章货币资金与应收项目
- 区县涉企收费检查岗事业单位笔试能力套卷
- 中药化学2026第二章一
- 2026年机械加工企业安全考试题库及答案
- 常见老年慢性病患者的居家护理
- 2027届浙江省七彩阳光、浙南名校、精诚联盟、金兰教育高三上学期8月开学联考物理+答案
- 第9课 安全文明上网 第2课时 课件(内嵌视频)2026-2027学年道德与法治四年级上册统编版
- 2026世界互联网大会文化遗产数字化案例集
- 2026年水利安全员b证考试题库及答案解析
- 供应链协同管理方法论文
- 中国结石用药市场需求前景规模及未来前景展望研究报告
- 高中英语3500词(带音标2026新高考版)
- GB/T 18915.1-2013镀膜玻璃第1部分:阳光控制镀膜玻璃
- GA 360-2009警服材料精梳毛涤混纺织品
评论
0/150
提交评论