C语言chap5(循环结构).ppt_第1页
C语言chap5(循环结构).ppt_第2页
C语言chap5(循环结构).ppt_第3页
C语言chap5(循环结构).ppt_第4页
C语言chap5(循环结构).ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 (i=100) /* 语句标号后的“:”是必须的 */ sum=sum+i; i+; goto loop; printf(“%d”,sum); ,用while语句可实现“当型”循环,语句形式为: while (表达式) 语句; 说明: “表达式”的值为真(非0)时执行“语句”,然后返回while处判断“表达式”是否为假(0 ),若为假,则转去执行“语句”后面的语句,否则,继续执行“语句”。 “语句”可以是用 括起的复合语句。,3. while 语句,例5.2用while语句求1+2+100 。,main( ) int i, sum=0; i=1; while ( i=100 ) sum=sum+i; i+; printf(“%d”, sum); ,用dowhile语句可实现“直到型”循环,语句形式为: do 语句; while (表达式); 说明: 执行“语句”后,判断“表达式”是否为假(0),若为假,则结束循环,否则返回do处继续执行“语句”。 “语句”可以是用 括起的复合语句。 while循环是先判断“表达式”,后执行“语句”。因此。while循环可能一次也不会执行。 do while循环是先执行“语句”,后判断“表达式”。因此,do while 循环至少要执行 1 次。,4. do while语句,例5.3 用do while语句求1+2+100 。,main( ) int i, sum=0; i=1; do sum=sum+i; i +; while ( i=100 ); printf(“%d”, sum); ,main( ) int i, sum = 0 ; for ( i=1; i=100; i+ +) sum = sum + i ; printf(“%d”, sum); ,5. for 语句,for语句的一般形式: for (表达式1; 表达式2; 表达式3) 语句; 其中:“语句”可以是用 括起的复合语句。 for语句的执行过程如图所示。,例5.3 用 for 循环语句求1+2+100 。,i=1; for ( ; i=100; i+ +) sum=sum+i; 表达式2常称为循环条件表达式,如果省略“表达式2”或三个表达式均省略,则成为“死循环”。如: for (i=1; ; i+) sum=sum+i; for ( ; ; ) 语句; 表达式3常用于循环变量的修改,可置于“语句”中。如: for (sum=0, i=1; i=100 ;) sum=sum+i; i+; 如果只有“表达式2”,则完全等同于while循环。如:, “表达式1”常称为初始表达式可置于for语句之前,但必须保留“;”如:, “表达式1”可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其它表达式。如: for (sum=0; i=100; i+) sum=sum+i; “表达式1”和“表达式3”可以是简单表达式,也可以是逗号表达式。如: for (i=0, j=100; i=j; i+, j-) k=i+j; “表达式2” 一般为关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值为非0,就执行“语句”。,for (sum=0, i=1; i=100;) sum=sum+i; i+;,while ( i=100 ) sum=sum+i; i+; ,1) break语句 break语句用于从while 、do while和for循环中跳出去而终止其循环。 例:for (i=1; 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”, ,交换,例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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论