资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1. 概述重复执行某个程序段称为循环。在C中可用如下 语句实现循环: 1用goto语句和 if 语句构成循环; 2用while语句; 3用dowhile语句; 4用for语句。2. goto 语句goto语句为无条件转向语句。其形式为:goto 语句标号;说明: goto语句的作用是无条件地转去执行“语句标号” 标明的某一段程序。第5章 循 环 控 制 “语句标号”为某一语句前的一个标识符。其定名规则 与变量名相同。例5.1 用 if 语句和goto语句构成循环求 。 在C中,除非不得已时才使用goto语句。main( )int i,sum=0;i=1; loop: if (i30) break;printf(“%f n”,s); 注:break语句不能用于循环语句和switch语句以外的 任何其它语句中。 2) continue语句 continue语句的作用是结束本次循环并开始下一次循环 。 6. break 语句和 continue 语句例5.4 编程输出100 200之间不能被3整除的 数。main( ) int n;for (n=100; n=200; n+)if (n%3=0) continue;printf(“%d”,n);3) break语句和continue语句执行流程比较例5.5 用“辗转相除法”求正整数m和n的最大公约数。 “辗转相除法”的步骤为:(演示) 若mn,则m n; m%n r ; 若r=0,转 n m,r n,转 输出n。 main( ) int r,m,n;printf(“Enter m,n=”); scanf(“%d%d”,printf(“m=%d,n=%dn”,m,n);if (mn) r=m; m=n; n=r ; r =m%n;while ( r != 0 ) m=n; n=r ; r =m%n; printf(“H.C.F=%dn”,n); 交换例5.6 求100 200之间的所有素数(循环嵌套)。 (演 示) : #include “math.h” main( ) int f,m,i,k,n=0;for (m=101; m=200; m=m+2)if (n%10 = = 0) printf(“n”);k = sqrt(m); f =1;for (i=2; i = k; i+)if (m%i = = 0) f = 0; break; if (f = = 1) printf(“%d”,m); n=n+1; 例5.8 编程求1000以内的完数。(一个数等于因子之和为完数) #include “stdio.h” main( ) int m,n,sum;for (m=2; m1000; m+)sum=1;for (n=2; nm; n+)if (m%n=0) sum+=n; /*求m的因子之和*/if (m=sum) /*按规定格式打印m*/printf(“%d=1“,m);for (n=2; nm; n+)if (m%n=0) printf(“+%d“,n);printf(“n“); 循环小结:For while dowhile 三种循环可以相互转换。用if goto 可以构成循环, 但不符合结构化程序设计,尽量少用 或不用。三种循环可以相互嵌套。 本章习题:P97 5.12 5.13 5.16 5.18 P99 5.20 5.24 5.25 5.32 5.36 5.37
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号