欢迎来到天天文库
浏览记录
ID:50084595
大小:84.00 KB
页数:11页
时间:2020-03-08
《C语言程序设计教程教学课件李淑华 第07讲循环控制 2 .ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七讲循环控制5.5循环的嵌套5.6几种循环的比较5.7休息语句和继续语句5.8应用举例5.5循环的嵌套一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。三种循环:while循环、do-while循环和for循环可以互相嵌套。如下面的几种形式都是合法的。(1)while(){…while(){…}}(2)do{…do{…}while();}while();(3)for(;;){…for(;;){…}}(5)for(;;){…while(){…}}(4)while(){…do{…}while();…}(6)do{…for(;;){}…}while();5.6几种循环的比较(1
2、)4种循环可以用来处理同一问题,一般性况下它们可以互相代替。(2)while和do-while循环,只在while后面指定循环条件,在循环体中包含反复执行的操作语句,包括使循环趋于结束的语句。(3)用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。为了语句可以在表达式1中实现循环的初始化。(4)while和for循环是先判断表达式的值,后执行循环体各语句;而do-while循环是先执行循环体各语句,后判断表达式的值。(5)对while循环、do-while循环和for循环,可以用break语句跳出循环,用continue语句结
3、束本次循环,而对用if语句构成的循环,不能用braek语句和继续语句进行控制。5.7break语句和continue语句5.7.1break语句格式:break;功能:该语句可以使程序运行时中途退出一个循环体。说明:在几种循环中,主要是在循环次数不能预先确定的情况下使用break语句,在循环体中增加一个分支结构。当某个条件成立时,由break语句退出循环体,从而结束循环过程。例5.6求圆的面积#definePI3.1415926main(){intr;floats;for(r=1;r<10;r++);{s=PI*r*r;if(s>100)break;}printf(“s=%f,s
4、);}}说明:(1)braek语句不能用于循环语句和开关语句之外的任何其它语句。(2)在多重循环的情况下,使用break语句时,仅仅退出包含break语句的那层循环体,即break语句不能使程序控制退出一层以上的循环。5.7.2continue语句格式:continue;功能:结束本次循环,即跳过循环体中下面尚未执行的语句,继续进行下一次循环。说明:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束循环,不再进行判断。如下图所示:表达式1表达式2语句语句While循环的下一个语句假假真真break表达式1表达式2语句语句While循环的下一个语
5、句假假真真continue例5.7输出100~200中不能被7整除的数。main(){intn;for(n=100;n<=200;n++){if(n%7==0)continue;printf(“%d”,n);}5.8应用举例例5.8输出1~20中能被3整除的数,并求出它们的和。main(){intn,s=0;for(n=1;n<=20;n++)if(n%3==0){s=s+n;printf(“%d,”,n);}printf(“s=%d”,s);}运行结果:3,6,9,12,15,18S=63例5.9用公式π/4=1-1/3+1/5-1/7+…求π的近似值,直到最后一项的绝对值
6、小于10-6为止。#include”mach.h”main(){ints;floatn,t,pi;t=1;p=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.6f”,pi);}运行结果pi=3.141397例5.10求Fibonacci数列:1,1,2,3,5,8,…前20个数。f1=1(n=1)f2=1(n=2)fn=fn-1+fn-2(n>=3)程序如下:main(){longintf1,f2;inti;f1=1;f2=1;for(i=1;i<=10;i
7、++){printf(“%8ld%8ld“,f1,f2);if(i%2==0)printf(“”);f1=f1+f2;f2=f2+f1;}}运行结果11235813213455891442333776109871597258441816765例5.11求100~200中的全部素数。#include”mach.h”main(){intm,k,I,n=0;for(m=101;m<=200;m=m+2){if(n%10==0)printf(“”);k=sqrt(m);for(i
此文档下载收益归作者所有