chap循环结构实用PPT课件_第1页
chap循环结构实用PPT课件_第2页
chap循环结构实用PPT课件_第3页
chap循环结构实用PPT课件_第4页
chap循环结构实用PPT课件_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、用while语句可实现“当型当型”循环,语句形式为: while (表达式表达式) 语句;语句;说明: “表达式”的值为真(非0)时执行“语句”,然后返回while处判断“表达式”是否为假(0 ),若为假,则转去执行“语句”后面的语句,否则,继续执行“语句”。 “语句”可以是用 括起的复合语句。 3. while 语句语句第1页/共15页例例 5 . 2 用 w h i l e 语 句 求1+2+100 。main( )int i, sum=0; i=1; while ( i=100 ) sum=sum+i; i+; printf(“%d”, sum);第2页/共15页用dowhile语句可实

2、现“直到型直到型”循环,语句形式为: do 语句;语句; while (表达式表达式);说明: 执行“语句”后,判断“表达式”是否为假(0),若为假,则结束循环,否则返回do处继续执行“语句”。 “语句”可以是用 括起的复合语句。 while循环是先判断“表达式”,后执行“语句”。因此。while循环可能一次也不会执行。 do while循环是先执行“语句”,后判断“表达式”。因此,do while 循环至少要执行循环至少要执行 1 次次。 4. do while语句语句第3页/共15页例例5.3 用do while语句求1+2+100 。main( ) int i, sum=0; i=1;

3、do sum=sum+i; i +; while ( i=100 ); printf(“%d”, sum);第4页/共15页 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 。第5页/共15页 i=1; for ( ; i=100; i+

4、 +) sum=sum+i; 如果省略“表达式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”可以

5、是简单表达式,也可以是逗号表达式。如: 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+; 第6页/共15页1) break语句 break语句用于从while 、do while和for循环中跳出去而终止其循环。例例:for (i=1; i30) break; printf(“%f n”,s); 注注:break语句不能用于

6、循环语句和switch语句以外的任何其它语句中。2) continue语句continue语句的作用是结束本次循环并开始下一次循环。 6. break 语句和语句和 continue 语句语句第7页/共15页例例5.4 编程输出100 200之间不能被3整除的数。 main( ) int n; for (n=100; n=200; n+) if (n%3=0) continue; printf(“%d”,n); 第8页/共15页3) break语句和语句和continue语句执行流程比较语句执行流程比较第9页/共15页例例5.5 用“辗转相除法”求正整数m和n的最大公约数。“辗转相除法”的步骤

7、为: 若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”,&m,&n); 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); 第10页/共15页例5.6 求100 200之间的所有素数(循环嵌套)。#include “math.h”main( )int f,m,i,k,n=0; fo

8、r (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; 第11页/共15页第12页/共15页例例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; if (m=sum) printf(%d=1,m); for (n=2; nm; n+) if (m%n=0) printf(+%d,n); printf(n); 第13页/共15页循环小结:For while dowhile 三种循环可以相互转换。用i

温馨提示

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

最新文档

评论

0/150

提交评论