




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章循环结构程序设计51为什么需要循环控制52用while语句实现循环5.3用do一while语句实现循环5.4用fo语句实现循环55循环的嵌套5.6几种循环的比较5.7改变循环执行的状态5.8循环程序举例5.1为什么需要循环控制”在日常生活中或是在程序所处理的问题中常常遇到需要重复处理的问题数豆子 要向计算机输入全班50个学生的成绩 统计全班50个学生各门课的平均成绩 求30个整数之和检査30个学生的成绩是否及格51为什么需要循环控制例如:全班有50个学生,统计各学生 三门课(高数.物理、概率论)的平均成 绩。输入学生1的三门课成绩,并计算平均值后输出scanf(%fr%fr%fr/r &
2、sl,&s2r & s3);aver=(sl+s2+s3)/3;pri ntf (a ver=% 7.2rr,a ver);入学生2的三门课成绩,并计算平均值后彳 scanfC、f,%f,%fJ&sl,&s2,&s3);aver=(sl+s2+s3)/3; printf(Maver=%7.2f/rzaver);要对50个学生进行相同操作重复50次X大多数的应用程序都会包含循环结构”循环结构和顺序结构、选择结构是结构 化程序设计的三种基本结构,它们是各 种复杂程序的基本构造单元5.2用while语句实现循环全班有50个学生,统计各学生三门课 的平均成绩。while语句的一般形式如下:while
3、(表达式)屋伺循环体while语句的一般形式如下:while (壓因)语句循环条件表达式“真”时执行循环体语句“假”时不执行while循环的特点是:先判断表达式,后执行循环体语句)0)例5丄求1 + 2+3 + . +丄00,艮卩工n-l解题思路:这是累加问题,需要先后将100个数相加要重复99次加法运算,可用循环实现后一个数是前一个数加1而得加完上一个数i后,使i自加可得到下一个数#include int i“,sum=0; while (i = 100)int main()sum = sum+i; i+;不能少复合语句printf(Msum=%dnfsum); return 0;#incl
4、ude int main()int i = lzsum=0;while (ido -while语句的特点:先无条件地执行循环体,然后判断循环条件是否成立 dowhile语句的一般形式为:53用dkwhil语句实现循环例5.2用do.while语句求:1001+2+3+.+100,即n=5.3用dowhile语句实现循环解题思路:i=1; sum=0; dosum=sum+i; i+; while(i=100);#include int main()int i=1,sum=0; dosum=sum+i;i+; while(i=100); printf(Msum=%dnM,sum); return
5、 0;例5.3 while和dowhile循环的比较。scanf(u%dn,&i); dosum=sum+i;i卄;printf(usum=%dn,sum);sum=sum+i;I+; while (i=10);printf(Msum=%dnM,sum);i=?ll sum=0i=?l sun=55i=?llsun=llin当while后面的表达式的第一次的值为“真” PI时,两种循环得到的结果相同;否则不相同 scanf(u%d,&i); while (i for语句不仅可以用于循环次数已经确 定的情况,还可以用于循环次数不确定 而只给出循环结束条件的情况 for语句完全可以代替while语
6、句Hi54用fbr语句实现循环for (i=1;i=100;i+)printf(M%d ,f, i);i=i+154用fbr语句实现循环Afoi语句的一般形式为for(枣达式1 ;表达式2;表达式3) 厂语句设置初始条件,只执行一 次。可以为零个、一个或 多个变量设置初值54用fbr语句实现循环Afoi语句的一般形式为for(表达式表达芟2;表达式3)语句 循环条件表达式,用来判定是否继续 循环。在每次执行循环体前先执行此 表达式,决定是否继续执行循环54用fbr语句实现循环Afoi语句的一般形式为for(表达式1;表达式2;表达式3) 语句作为循环的调整器,例如 使循环变量增值,它是在 执行
7、完循环体后才进行的5.4用fbr语句实现循环“or语句的执行过程:(1) 先求解表达式1(2) 求解表达式2,若其值为真,执行循环体, 然后执行下面第(3)步。若为假,则结束循环, 转到第步(3) 求解表达式3(4) 转回上面步骤(2)继续执行(5) 循环结束,执行for语句下面的一个语句5.4用fbr语句实现循环for (i=1;i=100;i+ sum=sum+i;用for语句更简洁、方便等价于 i=1:while (i=100)sum=sum+i; i+;5.4用fbr语句实现循环for俵达式11炭达式g |表达式3) 语句 一个或两个或三个表达式均可以省略孚岀扳世5.4用fbr语句实现
8、循环for sum=0|; i=100; i+) X sum=sum+i;与循环变量无关 合法5.4用fbr语句实现循环for(um=0,i=1 ; i=100; i+)sum=sum+i;for(i=0j=100 ; i=j; i+,j)k=i+j;逗号表达式 合法54用f6r语句实现循环or语句与while语句的等价转换 “表达式俨可以省略X表达式2”可以省略汕表达式3”可以省略占只有“表达式2”,直接相当于一个while ,将三个表达式都省略,相当于while(1)表达式2”一般是关系表达式或逻辑表达 式,但也可以是数值表达式等,只要其值非 零,就执行循环体(下例)5.4用fbr语句实现
9、循环for(i=0; (c=getchar()!= break语句可以用来从循环体内跳出 循环体,即提前结束循环,接着执行 循环下面的语句潦紗:字出扳芒5-7J用break语句提前终止備环例5.4在1000个人中,征集慈善募捐,当总数达到10万元时就结束,统计此 时捐款的人数,以及平均每人捐款的 数目。Hi5-7-1用breal(语句提前终止循环”编程思路:循环次数不确定,但最多循环1000次在循环体中累计捐款总数用if语句检査是否达到10万元如果达到10万元就不再继续执行循环,终 止累加计算人均捐款数5-7-1用breal(语句提前终止備环A编程思路:变量amount,用来存放当前个人的捐款
10、 数变量total,用来存放累加后的总捐款数变量aver,用来存放人均捐款数定义符号常量SUM代表100000#include 翻临扇翩#define SUM 100000int main()常量SUM代表 100000 float amountzaverztotal; int i;for (i = l,total=0;i=SUM) break;aver=total / i ;printf(M nu m = %dnaver=%10.2fn ,i,aver);return 0;#include 二 & 虚-#de竹ne SUM 100000 int main() float amountzave
11、r,total; int i; for (i = l,total=0;i=SUM) break;aver=total / i ;printf(M nu m = %dnaver=%10.2fn,i,aver);#include #define SUM 100000 int main() float amount,aver,total; int i; for (i = l,total=0;i达到10万,提前结束循环aver=total / i ;printf(M nu m = %dnaver=%10.2fn ,i,aver);return 0;please please please please
12、 please please please nun7#include ) #define SUM 100000 intmain() float amountzaverztd for (i = l,total=0;i71if (total=SUM) break;aver=total / printf(M num讣实际捐款人数-%dnaver=%10.2fnM,i,aver);return 0;#include #define SUM 100000 int main() float amount,aver,total; int i; for (i = l,total=0;i=SUM) |break
13、|;/只能用于循环语句和switch,i,aver);return 0; /*本程序有错误,请同学思考*/5.7.2用continue语句提前结東本次備环有时并不希望终止整个循环的操作,而只希望提前结束本次循环,而接着执行下次循环。这时可以用continue语句57.2用continue语句提前结東本次備环例5.5要求输出0200之间的不能 被3整除的数。厂编程思路:对100到200之间的每一个整数进行检査如果不能被3整除,输出该数,否则不输无论是否输出此数,都要接着检査下一个数(直到该数大于200为止)。华才字上亦匹for(n=100;nv = 200;n+ + )清华才字出越芒5.7.3 breaks 句和 continued 句的区别厂continue语句只结束本次循环,而不是终止整个循环的执行break语句结束整个循环过程,不再判 断执行循环的条件是否成立H”循环结构程序设计举例: 例5.6输出以下4*5的矩阵。1234 56103 6 9 12 154 8 12 16 20d解题思路:可以用循环的嵌套(多重循环)来处 理此问题用外循环控制输出的行数 用内循环来输出一行数据(列数)按矩阵的格式(每行5个数据)输出#include int main() int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商铺服务合同协议模板
- 种植葡萄入股合同协议
- 离婚父母赡养协议书模板
- 开分店入股协议个人合同
- 大股东股权转让合同协议
- 租房合同协议住宅用房版
- 空间少儿美术课件
- 沙牌碾压混凝土拱坝设计与关键技术研究
- 冬季预防煤气中毒安全教育
- 零食行业店长年终工作总结
- GA/T 992-2012停车库(场)出入口控制设备技术要求
- 河流专题复习-重点课件
- 企业风险管理-战略与绩效整合(中文版)
- 2022年全国职工书屋推荐书目
- 哈萨克斯坦铁路车站代码
- 装配式建筑设计设计专篇
- 《教育心理学》教材
- 绥满公路大庆黄牛场至齐齐哈尔宛屯段扩建项目B4合同段施工组织设计
- 身体红绿灯课件
- Pentacam白内障应用(第二版)
- 抗精神病药物的选择与联合应用
评论
0/150
提交评论