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

下载本文档

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

文档简介

1、1 第五章第五章 循环结构程序设计循环结构程序设计循环结构循环结构的特点:的特点: 在给定条件成立时,反复执行某程序段,在给定条件成立时,反复执行某程序段, 直到条件不成立为止。直到条件不成立为止。在在C C语言中,实现循环结构的语句主要有语言中,实现循环结构的语句主要有3 3种:种: forfor语句语句 while while doWhile doWhile注意两个概念:注意两个概念: 1 1、给定的条件称为、给定的条件称为循环条件循环条件 2 2、反复执行的程序段称为、反复执行的程序段称为循环体循环体2 第五章第五章 循环结构程序设计循环结构程序设计执行过程:执行过程: 计算表达式的值,

2、当值为真计算表达式的值,当值为真( (非非0)0)时,时, 执行循执行循环体语句。环体语句。whilewhile语句的一般形式为:语句的一般形式为: while(while(表达式表达式) ) 语句;语句; 表达式是循环条件,语句为循环体表达式是循环条件,语句为循环体表达式语句非00一、一、whilewhile语句语句3 第五章第五章 循环结构程序设计循环结构程序设计 计算计算的值,若表达式的值为真的值,若表达式的值为真(非非0)时,则执时,则执行循环体语句;不断反复,直到表达式的值为假行循环体语句;不断反复,直到表达式的值为假(0),则不,则不执行循环体语句,而直接转向循环体外的第一条语句。

3、执行循环体语句,而直接转向循环体外的第一条语句。 是循环反复执行的程序,称为是循环反复执行的程序,称为“循环体循环体”,当,当需要执行多条语句时,应使用需要执行多条语句时,应使用“ ”括起来组成一个复合括起来组成一个复合语句。语句。 while语句语句是先判断条件,后执行循环体,为是先判断条件,后执行循环体,为“当型当型”循环,因此循环,因此若条件不成立,有可能一次也不执行循环体。若条件不成立,有可能一次也不执行循环体。 一般情况下,一般情况下,whilewhile型循环最适合于这种情况:知道型循环最适合于这种情况:知道控制循环的条件为某个逻辑表达式的值,而且该控制循环的条件为某个逻辑表达式的

4、值,而且该表达式的表达式的值会在循环中被改变。值会在循环中被改变。4 第五章第五章 循环结构程序设计循环结构程序设计例:例: 编程序求:编程序求:s=1+2+3+100s=1+2+3+100main() int s=0,i=1; while (i=100) s=s+i; i+; printf(S=%d,s); 5 第五章第五章 循环结构程序设计循环结构程序设计二、二、do.whiledo.while语句语句 Do-whileDo-while语句的一般形式为语句的一般形式为: dodo 语句;语句; while (while (表达式表达式) );表达式表达式语句语句非非00 执行过程:执行过程

5、: 先执行循环体语句一次,再判别表达式的值,若先执行循环体语句一次,再判别表达式的值,若为真为真( (非非0)0)则继续循环,否则终止循环。则继续循环,否则终止循环。6 第五章第五章 循环结构程序设计循环结构程序设计例:例: 编程序求:编程序求:s=1+2+3+100s=1+2+3+100main() int s=0,i=1; do s=s+i; i+; while (i=100); printf(S=%d,s); 7 第五章第五章 循环结构程序设计循环结构程序设计求最大公约数的求最大公约数的N-S流程图流程图典型例题典型例题(例例5-8):求两个整数的最大公约数、最小公倍数求两个整数的最大公

6、约数、最小公倍数m n rm n r12 84840最大公约数最大公约数 4 4最小公倍数最小公倍数 1212* *8/4=248/4=248 第五章第五章 循环结构程序设计循环结构程序设计void main() int n,m,nm,r,t;printf(Enter m,n=?);scanf(%d%d,&m,&n);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 第五章

7、第五章 循环结构程序设计循环结构程序设计 1. 1.在在ifif语句,语句,whilewhile语句中,表达式后面都不能语句中,表达式后面都不能加分号,而在加分号,而在 do-whiledo-while语句的表达式后面则必须语句的表达式后面则必须加分号。加分号。 2.2.当循环体由多个语句组成时,也必须用当循环体由多个语句组成时,也必须用括括起来组成一个复合语句。起来组成一个复合语句。 3.3. 如果循环至少要执行一次,如果循环至少要执行一次, whilewhile和和do-do-whilewhile语句可以相互替换。语句可以相互替换。10 第五章第五章 循环结构程序设计循环结构程序设计for

8、for语句使用一般形式为:语句使用一般形式为: for(for(表达式表达式1 1;表达式;表达式2 2;表达;表达3) 3) 语句;语句; 表达式表达式1 1(控制变量的初始化(控制变量的初始化 ):): 用来给循环变量赋初用来给循环变量赋初值值, ,也允许在也允许在forfor语句外给循环变量赋初值,此时可以省略语句外给循环变量赋初值,此时可以省略该表达式。该表达式。表达式表达式2 2(循环的条件)(循环的条件)循环条件,一般为关系表达式或逻循环条件,一般为关系表达式或逻辑表达式。辑表达式。 表达式表达式3 3(循环控制变量的更新(循环控制变量的更新 ) 用来修改循环变量的值,用来修改循环

9、变量的值,一般是赋值语句。一般是赋值语句。三、三、forfor循环语句循环语句 11 第五章第五章 循环结构程序设计循环结构程序设计 1. 1.首先计算表达式首先计算表达式1 1的值。的值。 2.2.再计算表达式再计算表达式2 2的值,若值为真的值,若值为真( (非非0)0)则执行循环体一次则执行循环体一次, ,否则跳出否则跳出循环。循环。 3 3. .然后再计算表达式然后再计算表达式3 3的值,转回的值,转回第第2 2步重复执行。步重复执行。 表达式表达式2 2语句语句非非0 00 0语句语句求解表达式求解表达式1 1求解表达式求解表达式3 3 在整个在整个forfor循环过程中循环过程中,

10、 ,表达式表达式1 1只计算一次,表达式只计算一次,表达式2 2和表达式和表达式3 3则可能计算多次。则可能计算多次。12 第五章第五章 循环结构程序设计循环结构程序设计例:用例:用forfor语句计算语句计算s=1+2+3+.+99+100s=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语句之前给循环变量赋初值。注意省略表达

11、式语句之前给循环变量赋初值。注意省略表达式1时,时,其后的其后的分号不能省略分号不能省略。例如:例如:for(; i=n; i+) t=t*i; 执行时,跳过执行时,跳过“ “求解表达式求解表达式1”这一步,其他不变。这一步,其他不变。 (2)如果表达式)如果表达式2省略,即不判断循环条件,循环无终省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式止地进行下去。也就是认为表达式2 始终为真,在形式上始终为真,在形式上构成构成死循环。死循环。 例如:例如:for(i=1 ; i+) t=t*i;14 第五章第五章 循环结构程序设计循环结构程序设计(3)表达式)表达式3也可以省略,但此

12、时程序设计者应另外也可以省略,但此时程序设计者应另外设法保证循环能正常结束,设法保证循环能正常结束,表达式表达式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和表达式和表达

13、式3可以是一个简单的表达式,可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。式,中间用逗号间隔。 例如:例如:for(t=1, i=1; i=n ; t=t*i, i+ );16 第五章第五章 循环结构程序设计循环结构程序设计四、循环的嵌套四、循环的嵌套多重循环结构。多重循环结构。 一个循环内完整地包含另一个循环结构,则称为多重一个循环内完整地包含另一个循环结构,则称为多重循环循环, ,嵌套一层称为二重循环,嵌套二层称为三重循环嵌套一层称为二重循环,嵌套二层称为三重循环 (1) while( ) while(

14、) 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=12*1=

15、2 2*2=43*1=3 3*2=6 3*3=9 . for(y=1;y=x;y+)20 第五章第五章 循环结构程序设计循环结构程序设计例例5-12打印如下所示图案。打印如下所示图案。21 第五章第五章 循环结构程序设计循环结构程序设计22 第五章第五章 循环结构程序设计循环结构程序设计 1 1 222 222 33333 33333 4444444 4444444 555555555 555555555 66666666666 66666666666 7777777777777 7777777777777 888888888888888 888888888888888 99999999999

16、999999 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的的Ascii码为码为49 */ printf(n); /* 换行换行 */ 24 第五章第五章 循环结构程序设计循环结构程序设计五、五、 三种循环语句比较三种循环语句比较 for ( ) while ( ) do . while(); 循循环环类类型型 当当型型循循环环 当当型型循循环环 直直到到循循环环 循循环环控控制制条条件件 表表达达式式

温馨提示

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

评论

0/150

提交评论