文档详情

C语言程序设计教程 李淑华 第07讲 循环控制 2 新.ppt

发布:2015-12-15约字共12页下载文档
文本预览下载声明
第七讲 循环控制 5.5 循环的嵌套 5.6 几种循环的比较 5.7 休息语句和继续语句 5.8 应用举例 5.5 循环的嵌套 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。 三种循环:while循环、do-while循环和for循环可以互相嵌套。如下面的几种形式都是合法的。 5.6 几种循环的比较 (1)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语句结束本次循环,而对用if语句构成的循环,不能用braek语句和继续语句进行控制。 5.7 break语句和continue语句 5.7.1 break语句 格式:break; 功能:该语句可以使程序运行时中途退出一个循环体。 说明:在几种循环中, 主要是在循环次数不能预先确定的情况下使用break语句,在循环体中增加一个分支结构。当某个条件成立时,由break语句退出循环体,从而结束循环过程。 例5.6 求圆的面积 #define PI 3.1415926 main( ) { int r; float s; for(r=1;r10;r++); {s=PI*r*r; if(s100) break;} printf(“s=%f,s); } } 5.7.2 continue语句 格式:continue; 功能:结束本次循环,即跳过循环体中下面尚未执行的语句,继续进行下一次循环。 说明:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束循环,不再进行判断。如下图所示: 例5.7 输出100~200中不能被7整除的数。 main( ) {int n; for(n=100;n=200;n++) {if(n%7==0) continue; printf(“%d”,n); } 5.8 应用举例 例5.8 输出1~20中能被3整除的数,并求出它们的和。 main( ) { int n,s=0; for(n=1;n=20;n++) if(n%3==0) {s=s+n; printf(“%d,”,n); } printf(“\ns=%d”,s); }运行结果: 3,6,9,12,15,18 S=63 例5.9 用公式π/4=1-1/3+1/5-1/7+…求π的近似值,直到最后一项的绝对值小于10-6为止。 #include”mach.h” main( ) { int s; float n,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\n”,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( ) {long int f1,f2; int i; f1=1;f2=1; for(i=1;i=10;i++) {printf(“%8ld %8ld “,f1,f2); if(i%2==0)printf(“\n”); f1=f1+f2; f2=f2+f1;} } 运行结果 例5.11 求100~200中的全部素数。 #include”mach.h” main( ) {int m,k,I,n=0; for(m=101;m=200;m=m+2) {if(n%10==0)printf(“\n”); k=sqrt(m); for(i=2;j=k;i++) if(m%i==0)braek; if(i=k+1){printf(“%d”,m); n=n+1;} } } 运行结果 101 1
显示全部
相似文档