欢迎来到天天文库
浏览记录
ID:50040728
大小:191.00 KB
页数:50页
时间:2020-03-08
《C 程序设计教程 教学课件 作者 戴水贵 敖志刚 俞海英 编著第4章 循环.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章循环在许多问题中需要用到循环,循环是指同一程序段重复执行若干次,被重复执行的程序段称为循环体,控制循环是否执行的条件称为循环条件。在结构化程序设计中,不允许出现死循环,所谓死循环是指不能正常结束的循环。循环语句有三种:while循环语句、do-while循环语句和for循环语句。4.1goto语句以及用goto语句构成的循环goto语句为无条件转移语句(无条件转到由标号指明的语句去执行)。goto语句的语法格式为:goto标号;main()//goto语句程序例{lop:;//标号由变量名后加冒号组成printf("%d",8);gotolop;//无条件转移到
2、标号处}/*运行结果:8888888888888888888888888888888888888888888888…8888888888888888888888888888888888888888888888………8888888888888888888888888888888888888888888888…*/说明:本程序是一个死循环(因为没有结束条件)。终止死循环用组合键Ctrl+C或Ctrl+Break。//用if语句和goto语句构成循环,求1+2+3+…+100的值。#includemain(){inti=1,sum=0;loop2:;//标
3、号if(i<=100){sum+=i;i++;gotoloop2;}printf("sum=%d",sum);}/*运行结果:sum=5050*/说明:本例用if语句中的条件来结束循环。4.2while循环语句while循环语句的格式为:while(条件){语句体;//条件满足时,执行语句体(条件不满足,则结束循环)}while循环语句的执行过程是:先判条件,如果条件为真(非零),则执行语句体,语句体执行完后,再回到while判条件,如果条件为真(非零),则循环…,当条件不满足时(为零),则结束循环。以上过程简称为“先判后做”。例如:用while循环语句求1+2+
4、3+…+100的值。main(){inti=1,sum=0;while(i<=100)/*先判*/{sum+=i;i++;/*后做*/}printf("sum=%d",sum);printf("i=%d",i);}/*运行结果:sum=5050i=101*/do-while循环语句的格式为:do{语句体;}while(条件);do-while循环语句的执行过程是:先执行语句体,再判条件,如果条件满足(非零),则循环…。当条件不满足时(为零),则结束循环。以上过程简称为“先做后判”。例如:用do-while循环语句求1+2+3+…+100的值。main(){in
5、ti=1,sum=0;do{sum+=i;/*先做*/i++;}while(i<=100);/*后判*/printf("sum=%d",sum);printf("i=%d",i);}/*运行结果:sum=5050i=101*/4.4while和do-while比较while(条件)do{{语句体;语句体;}}while(条件);先判后做先做后判程序例:用while循环语句计算10!的值。main(){inti=1;longt=1;while(i<=10){t*=i;//t=t*i;i++;}printf(“%d!=%d”,i-1,t);}/*运行结果:10
6、!=3628800*/程序例:用do-while循环语句计算2+4+6+…+100的值。main(){inti=0,sum=0;do{i=i+2;sum+=i;}while(i<=98);printf(“sum=%d”,sum);}/*运行结果:sum=2550*/程序例:用0.1mm厚纸对折,问对折多少次后,其厚度超过地球直径(12742公里)。main(){intn=1;//对折次数floatans;ans=2*1e-7;//2x10^-7(0.1mm折一次)while(ans<=12742){n=n+1;//n—对折次数ans=ans*2;//存放对折后的厚
7、度}printf("n=%d,ans=%f",n,ans);}/*运行结果:n=37,ans=13743.895508*/程序例:解方程:111111=111*11*x1(x=1~9)。main(){longinti=1,ans;ans=111*11*(i*10+1);while(111111!=ans)/*条件满足,则循环*/{i++;ans=111*11*(i*10+1);}printf("i=%d",i);}/*运行结果:i=9*/程序例:输出Fibonacei数列。Fn=1(n<=2)初始条件(边界条件)Fn=Fn-1+Fn-2(n>
此文档下载收益归作者所有