《循环结构序设计》

上传人:资****亨 文档编号:214302262 上传时间:2021-11-23 格式:PPT 页数:35 大小:245KB
返回 下载 相关 举报
《循环结构序设计》_第1页
第1页 / 共35页
《循环结构序设计》_第2页
第2页 / 共35页
《循环结构序设计》_第3页
第3页 / 共35页
《循环结构序设计》_第4页
第4页 / 共35页
《循环结构序设计》_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《《循环结构序设计》》由会员分享,可在线阅读,更多相关《《循环结构序设计》(35页珍藏版)》请在金锄头文库上搜索。

1、第7章循环结构程序设计编辑ppt7.1 循环的概念7.2 实现循环的语句 7.3 break和continue语句7.4 循环的嵌套7.5 循环结构程序设计举例 编辑ppt7.1 循环的概念当所要解决的问题存在重复执行内容时,应该使用循环结构来实现,具体的设计步骤可归纳如下。(1)构造循环体。将问题中需要重复执行的部分,利用C语言规则归纳出一组程序段。在归纳的过程中应充分利用变量是一个变化的量的概念。如本列中变量score在不同的时刻代表的是不同学生的成绩。编辑ppt(2)寻找控制循环的变量。有的题目循环的次数是确定的,可以使用计数器来控制循环;有的题目循环的次数不是确定的,那么使用计数器就不

2、合适了,设计者应从题目中去寻找规则变化的量来控制循环体完成规定的次数。(3)找出控制变量的3个要素。循环控制变量的初值。循环的条件。使循环趋于结束的部分。编辑ppt7.2 实现循环的语句7.2.1 while语句while语句是实现当型结构循环的语句,其一般形式为while(逻辑量)循环体语句其中,while是C语言的关键字,语句中的逻辑量为循环条件。while语句的流程图如图7.2所示。编辑ppt使用while语句实现循环时,语句中的逻辑量对应于循环条件P,循环体语句对应于循环体A。while语句执行时,首先判断逻辑量的值,如果逻辑量为1,则首先执行循环体语句,然后继续判断逻辑量;如果逻辑量

3、为0,则结束循环,执行循环的后续语句。编辑ppt例7.3 求1到100的和。根据流程图写出程序:main()inti,sum;sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%dn,sum);图7.3例7.3的N-S流程图编辑ppt例7.4 求n!。main()floatfac;inti,n;fac=1;i=2;scanf(%d,&n);while(i=n)fac=fac*i;i+;printf(n!=%.0fn,fac);图7.4例7.4的N-S流程图编辑ppt7.2.2 do-while语句do-while语句是实现直到型循环结构的语句,其一般形式为:d

4、o循环体语句while(逻辑量);do-while语句的流程图如图7.6所示。编辑ppt使用do-while语句实现循环时,语句中的逻辑量对应于循环条件P,循环体语句对应于循环体A。do-while语句执行时,首先执行循环体语句,然后判断逻辑量,如果逻辑量为1,则继续执行循环体语句;如果逻辑量为0,则结束循环,执行循环的后续语句。编辑ppt例7.9 求两个数的最大公约数。(a)当型结构(b)直到型结构图7.8例子的两种结构的N-S图编辑ppt根据流程图可得到程序:main()main()intm,n,r;intm,n,r; scanf(%d,%d,&m,&n); scanf(%d,%d,&m,

5、&n);if(mn)if(mn)r=m,m=n,n=r;r=m,m=n,n=r;r=m%n;dowhile(r!=0)m=n;r=m%n;n=r;m=n;r=m%n;n=r;while(r!=0);printf(%dn,n);printf(%dn,m);编辑ppt7.2.3 for语句for语句是实现当型循环结构的语句,for语句是语言所提供的功能更强、使用更广泛的一种循环语句。其一般形式为:for(表达式1;逻辑量;表达式2)循环体语句; 表达式1通常用来给循环变量赋初值,一般是赋值表达式。也允许在for语句外给循环变量赋初值,此时可以省略该表达式。逻辑量通常是循环条件,一般为关系表达式或逻

6、辑表达式,也可以是任意“确定的值”。表达式2通常是使循环趋于结束的部分,一般是赋值表达式。编辑pptfor语句对应的传统流程如图7.9所示。for语句的执行过程如下:(1)求解表达式1。(2)判断逻辑量,如果为1,则执行循环体语句,然后执行第3步;如果为0,则结束循环,执行循环的后续语句。(3)求解表达式2。转向第2步执行。从for语句的形式可以看出for后的括号内三项内容分别对应于循环的三要素,能清晰地描述循环。我们可以采取图7.10所示的方式来描述for语句对应的N-S流程图。编辑ppt图7.9for语句的传统流程图图7.10for语句的N-S流程图编辑ppt例7.11求。main()fl

7、oatsum=0,s=0;floatx,h;scanf(%f,&h);for(x=0;x0;n-)a+;printf(%8d,a*2);printf(n);(3)可省去表达式2,应该在循环体部分增加使循环趋于结束部分。编辑ppt例7.13main()inta,n;a=0;for(n=9;n0;)printf(%8d,a*a);n-;printf(n);编辑ppt(4)省略逻辑量,则循环条件为真,那么在循环体中应有循环结束语句,否则是死循环。(5)省略表达式1和表达式2,for语句相当于while语句。编辑ppt例7.14main()/*计算xn*/floatx,xexpn;intn,i;sca

8、nf(%f,%d,&x,&n);xexpn=1;i=1;for(;i=n;)/*等同于while(in)*/xexpn*=x;i+;printf(%fn,xexpn);编辑ppt(6)循环体可以是空语句。例7.15#includestdio.hmain()intcount;count=0;printf(inputastring:n);for(;getchar()!=n;count+);printf(%dn,count);无论for语句如何省略括号内的内容,循环的三个要素是必须要体现的,所以在使用for语句时,要充分理解for语句的执行过程。编辑ppt7.3 break和continue语句7.

9、3.1 break语句break语句也可以在循环体中使用,作用是结束循环,继续执行循环的后续语句。break语句的一般形式为:break;使用break语句可以使循环语句有多个出口,在一些场合下使编程更加灵活、方便。编辑ppt例7.17判断某个一位数是否在一个不高于四位的整数中出现。图7.12例7.17的N-S流程图编辑pptmain()intm,n;intflag;flag=1;scanf(%d,%d,&m,&n);while(m!=0)if(n=m%10)flag=0;break;m=m/10;if(flag=0)printf(yesn);elseprintf(non);编辑ppt7.3.

10、2 continue语句continue语句只能用在循环体中。其一般格式是:continue;continue语句的功能是结束本次循环,即不再执行循环体中continue 语句之后的语句,转入下一次循环执行。应注意的是,该语句只结束本层本次的循环,并不跳出循环。 使用continue语句时,应该清楚在不同的循环语句中下次循环的起点是什么。在while和do-while语句中,下次循环的起点是判断逻辑量;在for语句中,下次循环的起点是计算表达式2的值。编辑ppt例7.18输出11000之间能被3、5、7同时整除的数。main()intn;for(n=1;n=1000;n+)if(n%3!=0)

11、continue;if(n%5!=0)continue;if(n%7!=0)cntinue;printf(%8d,n);printf(n);编辑ppt7.4 循环的嵌套 当一个循环体内又包含另一个循环结构时,称为循环的嵌套。被嵌入的循环又可以嵌套其他的循环,这就是多重循环。编辑ppt例7.19分析以下循环内外层循环控制变量的变化。main()inti,j;intmul;for(i=1;i10;i+)for(j=1;j10e-6);printf(%fn,ex);编辑ppt例7.21求Fibonacci数列的前20项之和。分析:本例是一种“递推”的题目。所谓“递推”是指在前面一个(或几个)结果的基础上推出下一个结果的方法。图7.14例7.21的N-S流程图编辑ppt根据流程图编写程序:main()floatsum;intf1,f2,f3;inti,t;f1=1;f2=1;f3=f1+f2;sum=f1+f2+f3;for(i=4;i=20;i+)t=f2;f2=f3;f1=t;f3=f1+f2;sum+=f3;printf(%.0fn,sum);编辑ppt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号