樊媛媛c语言程序设计06循环控制.ppt

上传人:王** 文档编号:468240 上传时间:2023-09-08 格式:PPT 页数:48 大小:159KB
下载 相关 举报
樊媛媛c语言程序设计06循环控制.ppt_第1页
第1页 / 共48页
樊媛媛c语言程序设计06循环控制.ppt_第2页
第2页 / 共48页
樊媛媛c语言程序设计06循环控制.ppt_第3页
第3页 / 共48页
樊媛媛c语言程序设计06循环控制.ppt_第4页
第4页 / 共48页
樊媛媛c语言程序设计06循环控制.ppt_第5页
第5页 / 共48页
樊媛媛c语言程序设计06循环控制.ppt_第6页
第6页 / 共48页
樊媛媛c语言程序设计06循环控制.ppt_第7页
第7页 / 共48页
樊媛媛c语言程序设计06循环控制.ppt_第8页
第8页 / 共48页
樊媛媛c语言程序设计06循环控制.ppt_第9页
第9页 / 共48页
樊媛媛c语言程序设计06循环控制.ppt_第10页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《樊媛媛c语言程序设计06循环控制.ppt》由会员分享,可在线阅读,更多相关《樊媛媛c语言程序设计06循环控制.ppt(48页珍藏版)》请在优知文库上搜索。

1、第六章 循环控制 6 61 1 概述概述 所谓循环控制,就是如何实现循环结构所谓循环控制,就是如何实现循环结构的控制问题。的控制问题。有有4 4种方法:种方法:用用gotogoto语句和语句和ifif构成循环。构成循环。用用whilewhile语句。语句。用用do-whiledo-while语句。语句。用用forfor语句。语句。6 62 2 用用gotogoto语句和语句和ifif语句构成循环语句构成循环例例:对于计算对于计算 s=1+2+3+4+5+6+7+8+9+100 s1 is+i s i+1 ii10 输出syn s=0;s=0;i=1;i=1;label:label:s+=i;s

2、+=i;i+;i+;if(i=10)if(i=10)goto labelgoto label;printf(“%d”,s)printf(“%d”,s);语句标号 无条件转向语句 goto goto 语句可以构语句可以构造循环,但不主张用,造循环,但不主张用,因为它容易破坏结构因为它容易破坏结构化程序设计。化程序设计。6 63 while3 while语句语句 whilewhile语句是专门用于实现循环控制的语语句是专门用于实现循环控制的语 句之一。句之一。其一般形式为:其一般形式为:while(while(表达式表达式)语句语句 含义:当表达式的值为非含义:当表达式的值为非0 0时,执行循环体

3、,时,执行循环体,否则执行后续语句。否则执行后续语句。语句关键 表达循环条件的表达式循环体 语句关键字 执行过程执行过程:while(while(表达式表达式)语句语句 表达式循环体0非0例:用例:用whilewhile语句实现前面算法:语句实现前面算法:eg6-1eg6-1main()main()int i=1,s=0;int i=1,s=0;while(i=10)while(i=10)s=s+i;s=s+i;i+;i+;printf(“n%d”,s);printf(“n%d”,s);注意注意:循环体若包括一条以上的语句,使用花括号。循环体若包括一条以上的语句,使用花括号。循环体中要有使循环

4、趋于结束的条件循环体中要有使循环趋于结束的条件i 1 0?s=0 i=1s=s+ii=i+1yn while(i=10)while(i=10)s=s+i;s=s+i;i+;i+;可简写为:可简写为:eg6-2eg6-2 while(i=10)s+=i+;while(i=10)s+=i+;非0(真)0(假)表达式循环体 6 64 do-while4 do-while语句语句 do-whiledo-while语句主要用于实现直到型循环。语句主要用于实现直到型循环。其一般形式为:其一般形式为:dodo 循环体循环体 while(while(表达式表达式););执行过程:执行过程:例:用例:用do-w

5、hiledo-while语句实现前面算法:语句实现前面算法:eg6-3eg6-3 main()main()int i=1,s=0;int i=1,s=0;dodo s+=i+;s+=i+;while(i=10);while(i=10);printf(“n%d”,s);printf(“n%d”,s);真s=0i=1i10?s=s+ii=i+1假do-while与与while语句的区别语句的区别#include void main()int s=0,i;scanf(%d,&i);while(i=10)s+=i+;printf(%dn,s);eg6-4#include void main()int

6、s=0,i;scanf(%d,&i);dos+=i+;while(i=10);printf(%dn,s);eg6-5输入的输入的i:10dowhile能方便的实现“直到型”循环,但应将条件取反。0 s 1 i 输出s s+i s i+1 i 直到i10直到型main()main()int i=1,s=0;int i=1,s=0;dodo s+=i+;s+=i+;while(i=10);while(i=10);printf(“n%d”,s);printf(“n%d”,s);假表达式2求解表达式1循环体求解表达式3真 6 65 for 5 for 语句语句 forfor语句是一种使用最为灵活,并语

7、句是一种使用最为灵活,并且是用得最多的循环控制语句,且是用得最多的循环控制语句,其一般形式为:其一般形式为:for(for(表达式表达式1;1;表达式表达式2;2;表达式表达式3)3)循环体循环体大体含义:大体含义:对于()中的情况执对于()中的情况执行循环体内容:行循环体内容:表达式表达式1 1:赋初值:赋初值表达式表达式2 2:判断循环条件是否成立:判断循环条件是否成立表达式表达式3 3:改变循环条件(避免进:改变循环条件(避免进入死循环)入死循环)例:用例:用forfor语句实现前面的算法:语句实现前面的算法:eg6-6eg6-6s=0;s=0;for(i=1;i=10;i+)s+=i;

8、for(i=1;i=10;i+)s+=i;标准形式标准形式表达式1 表达式2表达式3循环体可以理解:可以理解:循环变量循环变量i i从初值从初值1 1开始到终值开始到终值1010,步长为,步长为1 1,重复执,重复执行循环体。行循环体。forfor语句的常见变化:语句的常见变化:s=0;i=1;s=0;i=1;for(;i=10;i+)s+=i;for(;i=10;i+)s+=i;s=0;s=0;f o r(i=1;i =1 0;)s+=i+;f o r(i=1;i =1 0;)s+=i+;s=0;i=1;s=0;i=1;for(;i=10;)s+=i+;for(;i=10;)s+=i+;(1

9、 1)省略表达式)省略表达式1 1(2 2)省略表达式)省略表达式3 3(3 3)省略表达式)省略表达式1 1和和3 3for(i=1;i10)break;if(i10)break;s=10;i=10;s=10;i=10;for(;-i;)s+=i;for(;-i;)s+=i;(4 4)省略三个表达式)省略三个表达式表达式表达式2 2可为任意表达可为任意表达式,值为式,值为0 0时跳出循环时跳出循环eg6-7eg6-7标准形式:标准形式:for(i=1;i=10;i+)s+=i;循环体之前赋初值循环体内改变循环条件循环体内判断循环条件eg6-8eg6-8 s=0;s=0;for(i=1,j=1

10、0;ij;i+,j-)s+=i+j;for(i=1,j=10;ij;i+,j-)s+=i+j;1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10在程序设计中在程序设计中不要不要过分追求它的多变性过分追求它的多变性ij用逗号表达式用逗号表达式多个初值修改多个循环变量例:例:求求n!n!=1n!n!=1*2 2*3 36-9(n-1)6-9(n-1)*n n 参照累加求和参照累加求和 eg6-9eg6-9main()main()int i,n=5 int i,n=5,s=1;s=1;for(i=1;i=n;i+)s for(i=1;i=n;i+)s*=i;=i;pr

11、intf(“n s=%d”,s);printf(“n s=%d”,s);注意注意s s的初值。的初值。注意当注意当n n较大时的情况。较大时的情况。求和与连乘都是最常用的算法,要熟练掌握。求和与连乘都是最常用的算法,要熟练掌握。例:求自然数例:求自然数1-1001-100中能被中能被3 3整除的数之和。整除的数之和。main()main()int i,s=0;int i,s=0;printf(“n%d”,s);printf(“n%d”,s);eg6-10,eg6-11:1683eg6-10,eg6-11:1683 求能被求能被3 3整除但不被整除但不被7 7整除的数之和?整除的数之和?eg6-

12、12:1473for(i=1;i=100;i+)s+=i;for(i=1;i=100;i+)if(i%3=0)s+=i;for(i=3;i=100;i+=3)s+=i;for(i=3;i=100;i+=3)if(i%7)s+=i;例:求任意例:求任意100100个数中的最大值。个数中的最大值。Eg6-13Eg6-13 main()main()int i,a,max;int i,a,max;max=?max=?for(i=1;i=100;i+)for(i=1;imax)max=a;if(amax)max=a;printf(“n max=%d”,max);printf(“n max=%d”,max

13、);循环体中没有引用循环变量。循环体中没有引用循环变量。i i的作用?的作用?求任意个数中的最大值?求任意个数中的最大值?eg6-14 eg6-15eg6-14 eg6-15for(i=1;i+)for(i=1;i+)if(a=-9999)break;if(a=-9999)break;max=-32768/-2147483647;max=-32768/-2147483647;6.6 循环的嵌套循环的嵌套在C语言中,三种循环可以相互嵌套(1)while()(2)do (3)for(;)while()do for(;).while();.while();(4)while()(5)for(;)(6)

14、do do while()for(;).while();.while();6.7 几种循环的比较几种循环的比较1.四种循环通常可以用来解决同一问题,但不提倡使用goto语句,因为它是非结构化语句;2.while和dowhile中循环体是反复执行的部分,要有使循环趋于结束的语句。for中使循环趋于结束的操作在表达式3中。3.while,do while 中循环变量初始化在该语句之前,而for是在表达式1中;4.while,for先判断表达式,然后再执行语句,而do while先执行语句,再判表达式;5.while,do while,for 可用break 跳出循环,continue是结束本次循环

15、,而 if-goto 中不能使用break 和 continue语句eg6-16 已知半径 r,计算圆面积area,当area 100时结束程序的运行。main()int r;float pi=3.14159,area;for(r=1;r 100)break;printf(“r=%d,area=%5.2f n”,r,area);输出:r=1,area=3.14 r=2,area=12.57 r=3,area=28.27 r=4,area=50.27 r=5,area=78.85 /*当 r=6时,area=113.10 故此值没有被输出*/6.8 break 和和 continue 语句语句6

16、.8.1 break 语句语句一般形式一般形式:break;功能功能:结束循环语句,转向循环语句的下一语句,在多层循环结构中,只退出包含它的那层循环。本语句仅限用于 while,do while,for,switch 语句6.8.2 continue语句语句一般形式一般形式:continue;功能功能:跳过循环体中后面的语句,进入本循环结构的下次循环,在while 和 do while中立即转到表达式进行判断。在for语句中,转到表达式3进行增量,再转到表达式2进行判断。eg6-17 把100-120之间不能被3整除的数输出。main()int n;for(n=100;n=120;n+)if(n%3=0)printf(“n”);continue;printf(“%d,”,n);运行结果:运行结果:100,101,103,104,106,107,109,110,112,113,115,116,118,119,例:例:一场晚会要现场随机抽取幸运观众,抽一场晚会要现场随机抽取幸运观众,抽取办法是由主持人随机给定一个数字,如座位取办法是由主持人随机给定一个数字,如座位的行号和列号之和正好等于该

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 软件测试

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!