教学课件PPT循环结构程序设计

上传人:汽*** 文档编号:569377212 上传时间:2024-07-29 格式:PPT 页数:35 大小:222.54KB
返回 下载 相关 举报
教学课件PPT循环结构程序设计_第1页
第1页 / 共35页
教学课件PPT循环结构程序设计_第2页
第2页 / 共35页
教学课件PPT循环结构程序设计_第3页
第3页 / 共35页
教学课件PPT循环结构程序设计_第4页
第4页 / 共35页
教学课件PPT循环结构程序设计_第5页
第5页 / 共35页
点击查看更多>>
资源描述

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

1、第第6章章循环结构程序设计循环结构程序设计Followme!6.1概述概述循循环环结结构构是是程程序序中中一一种种很很重重要要的的结结构构。其其特特点点是是:在在给给定定条条件件成成立立时时,反反复复执执行行某某程程序序段段,直直到到条条件件不不成成立立为为止止。给给定定的的条条件件称称为为循循环环条条件件,反反复复执执行行的的程序段称为程序段称为循环体循环体。语语言言提提供供了了多多种种循循环环语语句句,可可以以组组成成各各种种不不同同形形式式的循环结构。的循环结构。1Goto语句与语句与if语句构成的循环语句构成的循环2while循环循环3dowhile循环循环4for循环循环6.2got

2、o语句和语句和gotoif循环循环1.goto语句(无条件转向语句)语句(无条件转向语句)格式格式:goto语句标号;语句标号;例:例:gotolabel1;说说明明(1)goto语语句句使使程程序序的的执执行行方方向向转到语句标号所在的语句。转到语句标号所在的语句。(2)语语句句标标号号的的命命名名规规则则同同变变量量2.goto语句的用途语句的用途(1)与)与if构成循环;构成循环;(2)从循环体内跳出;)从循环体内跳出;注注意意:使使用用goto语语句句跳跳转转不不符符合合结结构构化化的的编编程程思思想想,应应尽尽量量限限制使用。制使用。#includevoidmain()intx;sc

3、anf(“%d”,&x);if(x0)printf(“zheng-”);gotof1;printf(“fu”);f1:printf(“endn”);求求和和的一般方法的一般方法:设置存放和的变量设置存放和的变量sum,初始置初始置0;输入要加的数输入要加的数x;Sum=sum+x;是否继续?是,转是否继续?是,转;否,转;否,转打印打印sum求求积积的一般方法的一般方法:设置存放和的变量设置存放和的变量sum,初始置初始置1;输入要加的数输入要加的数x;Sum=sum*x;是否继续?是,转是否继续?是,转;否,转;否,转打印打印sum例:用例:用if和和goto求求#includevoidma

4、in()inti,sum=0;I=1;loop:if(I=100)sum=sum+I;I+;gotoloop;printf(“n%dn”,sum);1.语法:语法:while(表达式)循环体语句表达式)循环体语句2.执行过程:执行过程:计算表达式的值,当值为真计算表达式的值,当值为真(非非0)时,时,执执行循环体语句。行循环体语句。也叫也叫前前测试循环或当型循环。测试循环或当型循环。表达式?语句假真6.3while语句语句3.注意注意(1)如如果果循循环环体体中中有有多多个个语语句句,一一定定要要用用花花括括号号括括起起,否否则则循循环环只只到到第第一一个个分分号号处处,即即到到while后面

5、的第一个语句。后面的第一个语句。(2)循环体中的语句必须能够使条)循环体中的语句必须能够使条件表达式由件表达式由“真真”变变“假假”,否则循环为死循环。否则循环为死循环。(3)允许允许while语句的循环体又是语句的循环体又是while语句,从而形成双重循环。语句,从而形成双重循环。练习:练习:选择下列程序的运行结果:选择下列程序的运行结果:#includemain()intn=4;while(n-)printf(“%d”,-n);A)20B)31C)321D)210#includevoidmain()inti,sum=0;i=1;while(i=100)sum+=i;i+;printf(“n

6、%d”,sum);如果求如果求100!呢?!呢?如果求如果求n!呢?呢?求任意个数的和求任意个数的和?计算计算1100之间数之间数的累加和的累加和循环条件循环条件内复合语句内复合语句构成循环体构成循环体求求n!#includevoidmain()intI=1,n,sum=1;Scanf(“%d”,&n);while(i=n)sum*=i;i+;printf(“n%d”,sum);求任意个数的和求任意个数的和#includevoidmain()inti,sum=0,n,x;i=1;Scanf(“%d”,&n);while(i=n)scanf(“%d”,&x);sum+=x;i+;printf(“

7、n%d”,sum);求求1100内能被内能被5整除的整数的个数。整除的整数的个数。#includevoidmain()inti,count=0;i=1;while(i=100)if(I%5=0)count+=1;i+;printf(“n%d”,count);1.语法语法:do循环体语句循环体语句while(表达式)表达式);2.执行过程:执行过程:先执行循环体语句一次,先执行循环体语句一次,再判别表达式的值,若再判别表达式的值,若为真为真(非非0)则继续循环,否则终止循环。则继续循环,否则终止循环。也叫后测试循环或也叫后测试循环或直到型循环。直到型循环。表达式?语句真假6.4do-while语

8、句语句3. 3. 注意注意:(1)在在if语句、语句、while语句中,语句中,表达式后面都表达式后面都不能加分号,不能加分号,而而在在do-while语句的表达式后面语句的表达式后面则必须加分号则必须加分号。(2)do-while语句也可以组成多重循环,而且语句也可以组成多重循环,而且也可以和也可以和while语句相互嵌套。语句相互嵌套。(3)在在do和和while之间的循环体由多个语句组之间的循环体由多个语句组成时,必须用成时,必须用括起来组成一个复合语句。括起来组成一个复合语句。(4)do-while和和while语句相互替换时,但要语句相互替换时,但要注意修改循环控制条件。注意修改循环

9、控制条件。求1100的整数和main()intI=1,sum=0;while(I=100)sum+=I;I+;printf(“%dn”,sum);main()intI=1,sum=0;dosum+=I;I+;while(I=100);printf(“%dn”,sum);无论条件满足否,都先执行一次循环体无论条件满足否,都先执行一次循环体2.执行过程:执行过程:(1)计算表达式计算表达式1的值。的值。(2)计算表达式计算表达式2的值,若值的值,若值为真为真(非非0),则执行循环体一次,则执行循环体一次,否则跳出循环。否则跳出循环。(3)计算表达式计算表达式3的值,转回的值,转回第第2步重复执行。

10、步重复执行。 在整个在整个for循环过程中,表循环过程中,表达式达式1只计算一次,表达式只计算一次,表达式2和和表达式表达式3则可能计算多次。循环则可能计算多次。循环体可能多次执行,也可能一次体可能多次执行,也可能一次都不执行。都不执行。表达式2?表达式1语句表达式3假真6.5for语句语句1.语法语法:for(表达式表达式1;表达式表达式2;表达式表达式3)语)语句句说明:说明:(1)最简单的应用形式:)最简单的应用形式:for(循环变量赋初值;循环条件;循环变量增值)循环变量赋初值;循环条件;循环变量增值)例如:例如:for(i=1;i=10;i+)sum=sum+i;(2)三个表达式均可

11、缺省,但起分割作用的两个分号三个表达式均可缺省,但起分割作用的两个分号不可省略。不可省略。例如:例如:for(;)I=1;for(;i=10;i+)sum=sum+i;或或for(i=1;i=10;)sum=sum+i;I+;表达式表达式1省略,应在省略,应在for之前对循环变量赋初值之前对循环变量赋初值表达式表达式2省略,则不判断条件,循环无终止进行下去省略,则不判断条件,循环无终止进行下去表达式表达式3省略,则应另设法保证循环的结束省略,则应另设法保证循环的结束(3)表达式)表达式1和表达式和表达式3可为逗号表达式可为逗号表达式例如:例如:for(i=1,j=10;i=j;i+,j-)k=

12、i+j;执行结果见执行结果见6-1.c练习练习:阅读程序,选择正确答案。:阅读程序,选择正确答案。#includemain()inti;for(i=4;i=10;i+)if(i%3=0)continue;printf(“%d”,i);A)45B.)457810C)69D)678910练习练习:阅读程序,选择正确答案。:阅读程序,选择正确答案。#includemain()intI=0,j=0,k=0,m=4;for(m=0;m4;m+)switch(m)case0:I=m+;case1:j=m+;case2:k=m+;case3:m+;printf(“n%d,%d,%d,%d”,I,j,k,m)

13、;A)0,0,2,4B)0,1,2,3C)0,1,2,4D.)0,1,2,5例题例题1:求和:求和s=1-1/2+1/3-1/4+1/n,n由键盘输入。由键盘输入。这个级数的各项正负不相同。这个级数的各项正负不相同。解题方法:让变量解题方法:让变量t的初值等于的初值等于1,然后反复执行语句,然后反复执行语句t=-t,则,则t的值就在的值就在1和和-1之间交替变化。之间交替变化。main()inti;doubles,t;scanf(“%d”,&n);for(s=0,t=1,i=1;i=n;i+)s=s+t/i;t=-t;printf(“s=%fn”,s);6.6循环的嵌套循环的嵌套一一个个循循环

14、环体体内内又又包包含含另另一一个个完完整整的的循循环环结结构构,叫叫循循环环的的嵌嵌套套。不不同同语语句句构构成成的的循循环环也也可可以以相相互嵌套。互嵌套。(1)while().while().(2)for(;).while().for语句的循环体还可为另一个循环语句语句的循环体还可为另一个循环语句例如:例如:for(i=1;i=2;i+)for(j=1;j=2;j+)printf(“%3d”,i+j);printf(“n”);output:2334for(i=1;i=2;i+)for(j=1;j=2;j+)printf(“%3d”,i+j);printf(“n”);output:23346

15、.7几种循环的比较几种循环的比较1.不提倡使用不提倡使用goto循环。循环。2.for循环比循环比while、do-while循环功能更强。循环功能更强。3.while、do-while语语句句中中,循循环环变变量量初初始始化化应应在在循循环环语语句句之之前前完完成成。for循循环环可可以以在其中完成。在其中完成。4.while、do-while和和for循循环环,可可以以用用break语语句句跳跳出出循循环环,用用continue语语句句结结束束本本次循环。而次循环。而goto和和if构成的循环不能。构成的循环不能。6.8break语句和语句和continue语句语句break语句语句:强制

16、结束循环,转向循环语句下面的语句。强制结束循环,转向循环语句下面的语句。break可可以以跳跳出出switch结结构构,break语语句句还还可可以以跳跳出出最最近近的一层循环。的一层循环。for(r=1;r100)break;printf(“%f”,area);注注意意:break语语句句不不能能用用于于循循环环语语句句和和switch语语句句以以外外的的任何其它语句。任何其它语句。continue语句语句对对于于for循循环环,跳跳过过循循环环体体其其余余语语句句,转转向向循循环环变变量量增增量量表表达达式式的的计计算算;对对于于while和和do-while循循环环,跳跳过过循循环体其余

17、语句,转向循环继续条件的环体其余语句,转向循环继续条件的判定语句判定语句。continue语语句句和和break语语句句的的区区别别:continue只只结结束束本本次次循循环环,而而不不是是终终止止整整个个循循环环;break是是结结束束本本层层循循环环,不再进行条件判断。不再进行条件判断。while(表达式表达式1).if(表达式表达式2)break;.while(表达式表达式1).if(表达式表达式2)continue;.例例1:公式求公式求pi的近似值,直到最后一项的绝对值小于的近似值,直到最后一项的绝对值小于10-6为止。为止。#include#includevoidmain()in

18、ts;floatn,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)=1e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf(pi=%10.6fn,pi);6.9程序举例程序举例例例2:求求Fibonacci数列的前数列的前40个数,即个数,即F1=1(n=1)F2=1(n=2)Fn=Fn-1+Fn-2(n=3)#includevoidmain()longintf1,f2;inti;f1=1;f2=1;for(i=1;i=20;i+)printf(%12ld%12ld,f1,f2);if(i%2=0)printf(n);f1=f1+f

19、2;f2=f2+f1;说明:说明:(1)i每取一个值打两每取一个值打两个数,个数,220=40;(2)每打两个数换行。)每打两个数换行。例例3:译码。字母转换为其后第:译码。字母转换为其后第4个字母,非字母不变。个字母,非字母不变。#includevoidmain()charc;while(c=getchar()!=n)if(c=a&c=A&cZ&cz)c=c-26;printf(%c,c);按按回车停止译码回车停止译码如果是后如果是后四个四个字母字母例例4:求:求100200之间全部素数。之间全部素数。判断判断m是否素数的规则是:是否素数的规则是:m不能被不能被2到根号到根号2之之间所有整数

20、整除。间所有整数整除。#include#includeMain()intm,k,i,n=0;For(m=101;m=200;m=m+2)K=sqrt(m);For(i=2;i=k+1)printf(“%d”,m);n=n+1;if(n%10=0)printf(“n”);Printf(“n”);例例5:求:求10个数中的最大数。个数中的最大数。#includevoidmain()inti=1,x,max;scanf(“%d”,&x);max=x;for(i=2;i=10;i+)scanf(“%d”,&x);if(maxx)max=x;printf(“n%d”,max);输入第一个数输入第一个数第

21、一个数送第一个数送max依次输入第二到依次输入第二到第第10个数个数每输入一个数,每输入一个数,与与max比较,使比较,使max中始终存放中始终存放大大的数的数例例6-1:打印图形(矩形):打印图形(矩形)#includevoidmain()inti,j;for(i=1;i=4;i+)for(j=1;j=10;j+)printf(“*”);printf(“n”)打几行打几行每行打几列每行打几列打完一行换行打完一行换行*i=1234j12345678910例例6-2:打印图形(平行四边形):打印图形(平行四边形)#includevoidmain()inti,j,k;for(i=1;i=4;i+)

22、for(k=1;k=i;k+)printf(“”);for(j=1;j=10;j+)printf(“*”);printf(“n”)打几行打几行每行打几列每行打几列打完一行换行打完一行换行每行前空多少每行前空多少*例例6-3:打印图形(三角形):打印图形(三角形)#includevoidmain()inti,j,k;for(i=0;i=3;i+)for(k=1;k=10-i;k+)printf(“”);for(j=0;j=2*i;j+)printf(“*”);printf(“n”)打几行打几行每行打几列每行打几列打完一行换行打完一行换行每行前空多少每行前空多少*本章主要内容本章主要内容构成循环的各种语句(构成循环的各种语句(goto-if、while、do-while、for、break、continue)的格的格式及使用式及使用多重循环多重循环典型程序(求和、求积、计数)典型程序(求和、求积、计数)作业作业120页页6.3、6.4、6.8、6.14选作选作6.2、6.11上机内容上机内容运行调试通过运行调试通过120页页6.3、6.4、6.14

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

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