c语言第5章循环结构程序设计.ppt_第1页
c语言第5章循环结构程序设计.ppt_第2页
c语言第5章循环结构程序设计.ppt_第3页
c语言第5章循环结构程序设计.ppt_第4页
c语言第5章循环结构程序设计.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1 第五章 循环结构程序设计 循环结构的特点: 在给定条件成立时,反复执行某程序段, 直到条件不成立为止。 在C语言中,实现循环结构的语句主要有3种: for语句 while doWhile 注意两个概念: 1、给定的条件称为循环条件 2、反复执行的程序段称为循环体 2 第五章 循环结构程序设计 执行过程: 计算表达式的值,当值为真(非0)时, 执行循 环体语句。 while语句的一般形式为: while(表达式) 语句; 表达式是循环条件,语句为循环体 表达式 语句 非0 0 一、while语句 3 第五章 循环结构程序设计 说明:说明: 计算的值,若表达式的值为真(非0)时,则执 行循环体语句;不断反复,直到表达式的值为假(0),则不 执行循环体语句,而直接转向循环体外的第一条语句。 是循环反复执行的程序,称为“循环体”,当需 要执行多条语句时,应使用“ ”括起来组成一个复合语 句。 while语句是先判断条件,后执行循环体,为“当型” 循环,因此若条件不成立,有可能一次也不执行循环体。 一般情况下,while型循环最适合于这种情况:知道 控制循环的条件为某个逻辑表达式的值,而且该表达式的 值会在循环中被改变。 4 第五章 循环结构程序设计 例: 编程序求:s=1+2+3+100 main() int s=0,i=1; while (i=100) s=s+i; i+; printf(“S=%d“,s); 思考:如何求思考:如何求n!n! 5 第五章 循环结构程序设计 二、do.while语句 Do-while语句的一般形式为: do 语句; while (表达式); 表达式 语句 非0 0 执行过程: 先执行循环体语句一次,再判别表达式的值,若 为真(非0)则继续循环,否则终止循环。 6 第五章 循环结构程序设计 例: 编程序求:s=1+2+3+100 main() int s=0,i=1; do s=s+i; i+; while (i=100); printf(“S=%d“,s); 7 第五章 循环结构程序设计 求最大公约数的N-S流程图 典型例题(例5-8):求两个整数的最大公约数、最小公倍数 m n r m n r 12 8 4 84 0 最大公约数 4 最小公倍数 12*8/4=24 辗转相除法辗转相除法 8 第五章 循环结构程序设计 void main() int n,m,nm,r,t; printf(“Enter m,n=?“); scanf(“%d%d“, nm=n*m; if (mn) t=m; m=n; n=t; r=m%n; while (r!= 0) m=n; n=r; r= m%n; printf(“最大公约数为%dn“, n); printf(“最小公倍数为%dn“, nm/n); 9 第五章 循环结构程序设计 使用使用whilewhile和和do-whiledo-while语句应注意以下几点语句应注意以下几点 1.在if语句,while语句中,表达式后面都不能 加分号,而在 do-while语句的表达式后面则必须 加分号。 2.当循环体由多个语句组成时,也必须用括 起来组成一个复合语句。 3. 如果循环至少要执行一次, while和do- while语句可以相互替换。 10 第五章 循环结构程序设计 for语句使用一般形式为: for(表达式1;表达式2;表达3) 语句; 表达式1(控制变量的初始化 ): 用来给循环变量赋初 值,也允许在for语句外给循环变量赋初值,此时可以省略 该表达式。 表达式2(循环的条件)循环条件,一般为关系表达式或逻 辑表达式。 表达式3(循环控制变量的更新 ) 用来修改循环变量的值, 一般是赋值语句。 三、for循环语句 11 第五章 循环结构程序设计 1.首先计算表达式1的值。 2.再计算表达式2的值,若值为真 (非0)则执行循环体一次,否则跳出 循环。 3.然后再计算表达式3的值,转回 第2步重复执行。 表达式2 语句 非0 0 语句 求解表达式1 求解表达式3 注意:注意: 在整个for循环过程中,表达式1 只计算一次,表达式2和表达式3则可能计算多次。 forfor语句的执行过程:语句的执行过程: 12 第五章 循环结构程序设计 例:用for语句计算s=1+2+3+.+99+100 main() int i,s=0; for(i=1;i=100;i+) s=s+i; printf(“s=%dn“,s); 13 第五章 循环结构程序设计 说明:说明: (1)for语句的一般形式中的“表达式1”可以省略,此时 应在for语句之前给循环变量赋初值。注意省略表达式1时 ,其后的分号不能省略。 例如:for(; i=n; i+) t=t*i; 执行时,跳过“求解表达式1” 这一步,其他不变。 (2)如果表达式2省略,即不判断循环条件,循环无终 止地进行下去。也就是认为表达式2 始终为真,在形式上构 成死循环。 例如:for(i=1 ; i+) t=t*i; 14 第五章 循环结构程序设计 (3)表达式3也可以省略,但此时程序设计者应另外 设法保证循环能正常结束,表达式3的功能放到循环体 内。 例如:for(i=1;i=n;) t=t*i; i+; (4)可以省略表达式1和表达式3,只有表达式2, 即只给循环条件。 for(;i=n;) t=t*i; i+; i=1; 15 第五章 循环结构程序设计 (5)3个表达式都可省略。 例如:for(;) 语句 相当于 while(1)语句。 (6)表达式1和表达式3可以是一个简单的表达式 ,也可以是逗号表达式,即包含一个以上的简单表 达式,中间用逗号间隔。 例如:for(t=1, i=1; i=n ; t=t*i, i+ ); 16 第五章 循环结构程序设计 四、循环的嵌套多重循环结构。 一个循环内完整地包含另一个循环结构,则称为多重 循环,嵌套一层称为二重循环,嵌套二层称为三重循环 (1) while( ) while( ) (2) do do while(); while(); 17 第五章 循环结构程序设计 (4) while() for() (3) for() for() 18 第五章 循环结构程序设计 例:打印如下形式的九九乘法表. 19 第五章 循环结构程序设计 main() int x,y; for(x=1;x=9;x+) for(y=1;y=9;y+) printf(“%d*%d=%2d “,x,y,x*y); printf(“n“); 思考:若改为如下 形式程序应该如何 修改? 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 for(y=1;y=x;y+) 20 第五章 循环结构程序设计 例5-12打印如下所示图案。 21 第五章 循环结构程序设计 22 第五章 循环结构程序设计 1 222 33333 4444444 555555555 66666666666 7777777777777 888888888888888 99999999999999999 例打印由数字组成的如下所示金字塔图案。 23 第五章 循环结构程序设计 void main() int i,k,j; for(i=1;i=9;i+) /* 外循环控制打印行数 */ for (k=1;k=10-i;k+) /* 每行起始打印位置 */ printf(“ “); for (j=1;j=2*i-1;j+) /* 内循环控制打印个数 */ printf(“%c“,48+i

温馨提示

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

评论

0/150

提交评论