C语言 第5章 循环结构ppt课件_第1页
C语言 第5章 循环结构ppt课件_第2页
C语言 第5章 循环结构ppt课件_第3页
C语言 第5章 循环结构ppt课件_第4页
C语言 第5章 循环结构ppt课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、编辑课件编辑课件第第5章章 循环结构程序设计循环结构程序设计编辑课件2引例:编程计算引例:编程计算1*2*3*4*5编辑课件3学习三种结构的程序设计方法学习三种结构的程序设计方法顺序结构程序设计顺序结构程序设计选择结构程序设计选择结构程序设计循环结构程序设计循环结构程序设计掌握每一种语句的格式、功能、执行过程和执行掌握每一种语句的格式、功能、执行过程和执行结果,并学习如何将这些语句组织成程序结果,并学习如何将这些语句组织成程序学习逻辑问题的解题思路,及递推、迭代的方法学习逻辑问题的解题思路,及递推、迭代的方法编辑课件编辑课件循环结构程序设计循环结构程序设计循环的概念循环的概念用用whilewh

2、ile语句和语句和do-whiledo-while语句实现循环语句实现循环用用for for 语句实现循环语句实现循环 循环的嵌套循环的嵌套breakbreak语句和语句和continuecontinue语句语句几种循环的比较几种循环的比较程程 序序 举举 例例编辑课件5编辑课件6在很多实际问题中会遇到有规律性的重复运算,因在很多实际问题中会遇到有规律性的重复运算,因此在程序中就需要将某些语句重复执行。此在程序中就需要将某些语句重复执行。一组被重复执行的语句称为一组被重复执行的语句称为循环体循环体;每重复一次,都必须作出是继续还是停止循环的决每重复一次,都必须作出是继续还是停止循环的决定,这个

3、决定所依据的条件称为定,这个决定所依据的条件称为循环条件;循环条件;循环:在给定条件成立时,反复执行某程序段,直循环:在给定条件成立时,反复执行某程序段,直到条件不成立为止。到条件不成立为止。 编辑课件7循环结构循环结构循环条件循环条件 循环体循环体编辑课件8循环结构需要解决的两个问题循环结构需要解决的两个问题2. 2. 控制循环结构的控制循环结构的结构描述结构描述条件表示描述方法条件表示描述方法逻辑表达式逻辑表达式关系表达式关系表达式1. 1. 控制循环结构执行的控制循环结构执行的条件表示条件表示 while 语句语句do-while语句语句实现循环结构的语句实现循环结构的语句可使用可使用c

4、 c中的中的任意表达式任意表达式 for语句语句编辑课件91 1、while while 语语句:句:编辑课件10特点:先判断,后特点:先判断,后执行;若条件不成执行;若条件不成立,则有可能一次立,则有可能一次也不执行。也不执行。编辑课件11例例1. 编程计算编程计算1+2+3+ +10000方案一、方案一、sum = sum+i;i = i+1;编辑课件12编辑课件13编辑课件14编辑课件15特点:先执行,后特点:先执行,后判断;循环至少执判断;循环至少执行一次语句。行一次语句。编辑课件16例例2. 用用do-while语句实现语句实现1+2+3+ +10000编辑课件17例例2. 用用do

5、-while语句实现语句实现1+2+3+ +10000编辑课件18例例2. 用用do-while语句实现语句实现1+2+3+ +10000改成改成while语句语句注意两个语句的顺序!注意两个语句的顺序!编辑课件19例例3.3.求满足求满足 1 + 2 + 3 + + n500 1 + 2 + 3 + + n500 中最大的中最大的 N N ,并求其和,编写程序实现。,并求其和,编写程序实现。分析分析本题还是一个累加求和的问本题还是一个累加求和的问题,当累加和题,当累加和sumsum 500500时反时反复执行循环,否则结束循环复执行循环,否则结束循环步骤步骤定义变量:定义变量: sumsum

6、,n n;sum sum 和和 n n 分别赋初值;分别赋初值; n=0n=0;sum=0sum=0;当当 sum sum 500 500 时反复执行循环,时反复执行循环, 否则结束循环。否则结束循环。语句为:语句为:While(sum500)While(sum0 m 0 时,开始统计时,开始统计m m的位数的位数while(m0)while(m0)因为因为m0m0,m m至少有一位,至少有一位,num+;num+;然后把然后把m m的个位去除;的个位去除;m=m/10;m=m/10;再判断再判断m m是否仍然是否仍然00;当循环结束时,即:当循环结束时,即:m m等于等于0;0;结果:结果:

7、numnum的值即为的值即为m m的位数;的位数;编辑课件25编辑课件26编辑课件27求解方法:求解方法:(2)分别正向打印出每一位数字;)分别正向打印出每一位数字;首先应求出首先应求出m的位数的位数num;然后从最高位开始输出;然后从最高位开始输出;a)最高位为:最高位为:m/10num-1;除了最高位以外,其他的部分为:除了最高位以外,其他的部分为:m%10num-1;循环直到最后一位输出结束。循环直到最后一位输出结束。编辑课件28求解方法:求解方法:(3)逆序打印出各位数字;)逆序打印出各位数字;从最低位开始输出;从最低位开始输出;a)最低位为:最低位为:m/10;除去最低位,其它的部分

8、为:除去最低位,其它的部分为:m%10;循环,直到最高位输出结束。循环,直到最高位输出结束。编辑课件30(1):求位数):求位数(2):从高位到低):从高位到低位求每一位。位求每一位。(3):从低位到高):从低位到高位求每一位。位求每一位。编辑课件31编辑课件32(2):从高位到低位求每一位。):从高位到低位求每一位。编辑课件33(3):从低位到高位求每一位。):从低位到高位求每一位。编辑课件编辑课件循环结构程序设计循环结构程序设计循环的概念循环的概念用用whilewhile语句和语句和do-whiledo-while语句实现循环语句实现循环用用for for 语句实现循环语句实现循环 循环的

9、嵌套循环的嵌套breakbreak语句和语句和continuecontinue语句语句几种循环的比较几种循环的比较程程 序序 举举 例例编辑课件353 3、for for 语句:语句:表达式表达式1 1:一般为赋值表达式,给控制变量赋初值;:一般为赋值表达式,给控制变量赋初值;表达式表达式2 2:关系表达式或逻辑表达式,循环控制条件;:关系表达式或逻辑表达式,循环控制条件;表达式表达式3 3:一般为赋值表达式,给控制变量增量:一般为赋值表达式,给控制变量增量/ /减量;减量;语句语句:循环体,当有多条语句时,必须使用复合语句。:循环体,当有多条语句时,必须使用复合语句。编辑课件360真真(非非

10、0)表达式表达式2=?语句;语句;循环体外语句循环体外语句表达式表达式1;表达式表达式3;编辑课件37编辑课件38例例6. 用用 for 语句计算语句计算 1 + 2 + . . . + 100for( i=1; i=100; i+)sum += i;编辑课件39例例6. 用用 for 语句计算语句计算 1 + 2 + . . . + 100编辑课件40例例6. 用用 for 语句计算语句计算 1 + 2 + . . . + 100int i=0 , sum=0;while( i = 10 ) sum += i; i+; int i= 0, sum=0; do i+;sum+=i; while

11、(i10);改写成改写成while和和do-while语句。语句。编辑课件41forfor语句的三个表达式都是可以省略的,语句的三个表达式都是可以省略的,但分号但分号“;”;”绝对不能省略绝对不能省略。forfor语句有以下几种格式:语句有以下几种格式:(1 1)for( ; ; )for( ; ; )语句语句; ;(2 2)for( ;for( ;表达式表达式2;2;表达式表达式3 )3 )语句;语句;(3 3)forfor(表达式(表达式1;1;表达式表达式2; )2; )语句;语句;(4 4)for( i=1,j = n; i j; i +,j - - )for( i=1,j = n;

12、i j; i +,j - - )语句语句; ;编辑课件421 1、for( ; ; ) for( ; ; ) 该语句是一个死循环,一般用条件表达式加该语句是一个死循环,一般用条件表达式加breakbreak语句在循环体内适当位置,一旦条件满足时,用语句在循环体内适当位置,一旦条件满足时,用breakbreak语句跳出语句跳出forfor循环。循环。2 2、for(for(;表达式;表达式2 2;表达式;表达式3)3) 使用条件是:循环控制变量的初值不是已知常量,使用条件是:循环控制变量的初值不是已知常量,而是在前面通过计算得到。而是在前面通过计算得到。 例如:例如: i=m-n;i=m-n;

13、for( for(;ikik;i+)i+)语句;语句;编辑课件433 3、forfor(表达式(表达式1 1;表达式;表达式2 2;) )语句语句 一般当循环控制变量非规则变化,而且一般当循环控制变量非规则变化,而且循环体中有更新控制变量的语句时使用。循环体中有更新控制变量的语句时使用。 例如:例如: for(i=1for(i=1;i=100i=100;) ) i=i i=i* *2+1;2+1; 编辑课件444 4、for( for( i=1i=1,j=n j=n ;ijij;i+i+,j - -j - - ) )语句;语句; 在在forfor语句中,表达式语句中,表达式1 1、表达式、表达

14、式3 3都可以有一都可以有一项或多项,如本例中,表达式项或多项,如本例中,表达式1 1同时为同时为i i和和j j赋初值,赋初值,表达式表达式3 3同时改变同时改变i i和和j j的值。的值。当有不止一项时,各当有不止一项时,各项之间用逗号项之间用逗号“,”分隔。分隔。 编辑课件45循环结构小结循环结构小结同一个问题,往往既可以用同一个问题,往往既可以用 whilewhile语句解决,也可以用语句解决,也可以用 do-whiledo-while或者或者forfor语句来解决,但在实际应用中,应根语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。据具体情况来选用不同的循环语句。选用

15、的一般原则是:选用的一般原则是: 1 1、如果循环次数在执行循环体之前就已确定,一般如果循环次数在执行循环体之前就已确定,一般用用 forfor语句。如果循环次数是由循环体的执行情况确定语句。如果循环次数是由循环体的执行情况确定的,一般用的,一般用 whilewhile语句或者语句或者do-whiledo-while语句;语句; 2 2、当循环体至少执行一次时,用、当循环体至少执行一次时,用 do-whiledo-while语句,反语句,反之,如果循环体可能一次也不执行,则选用之,如果循环体可能一次也不执行,则选用whilewhile语句。语句。编辑课件编辑课件循环结构程序设计循环结构程序设计

16、循环的概念循环的概念用用whilewhile语句和语句和do-whiledo-while语句实现循环语句实现循环用用for for 语句实现循环语句实现循环 循环的嵌套循环的嵌套breakbreak语句和语句和continuecontinue语句语句几种循环的比较几种循环的比较程程 序序 举举 例例编辑课件47循环的嵌套循环的嵌套一个循环体内又包含一个循环体内又包含另一个完整的循环结另一个完整的循环结构,称为构,称为循环的嵌套循环的嵌套。内嵌的循环中还可以内嵌的循环中还可以嵌套循环,这就是嵌套循环,这就是多多重循环重循环。循环循环1循环循环2编辑课件48for()for() while()wh

17、ile() DoDo f o r ( )f o r ( ) while()while()while()while() for()for() for()for() for()for() 以下四种均为合法的嵌套循环结构以下四种均为合法的嵌套循环结构编辑课件49注意:三种循环语句注意:三种循环语句forfor、whilewhile、do-whiledo-while可以互相嵌可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之套自由组合。但要注意的是,各循环必须完整,相互之间绝间绝不允许交叉不允许交叉。如下面这种形式是不允许的:。如下面这种形式是不允许的: dodo . . for(;) for

18、(;) . . while();while(); 编辑课件50例例7. 7. 打印乘法打印乘法“九九表九九表”编辑课件51定义变量定义变量 i i,j j,m m;i i表示行,从表示行,从1 1 变化到变化到 9 9;j j表示列,从表示列,从1 1 变化到变化到 9 9;m = im = i* *j j;表示表中的值;表示表中的值;i i 取初值取初值 1 1;j j 从从 1 1 变化到变化到 i i ;计算出每一个;计算出每一个m=im=i* *j j,输出,输出m m,但不换行。,但不换行。输出换行;输出换行; i i 做一次变化,如果做一次变化,如果i 9i 9,则,转回步骤,则,

19、转回步骤 6 6;否则循环结束。否则循环结束。编辑课件52编辑课件53 #include int main() int i=0,j=0;for(i=1;i=9;i+)for(j=1;j=i;j+) printf(%4d,i*j); printf(n);return 0; 编辑课件编辑课件循环结构程序设计循环结构程序设计循环的概念循环的概念用用whilewhile语句和语句和do-whiledo-while语句实现循环语句实现循环用用for for 语句实现循环语句实现循环 循环的嵌套循环的嵌套breakbreak语句和语句和continuecontinue语句语句几种循环的比较几种循环的比较程

20、程 序序 举举 例例编辑课件55break 语句语句:用于循环语句和用于循环语句和 switch switch 语句中,作用是语句中,作用是 跳出它所在的循环语句或跳出它所在的循环语句或switch switch 语句。语句。格式:格式:while(while(条件条件1)1) ;if(if(条件条件2) break2) break; 执行过程:执行过程:每次执行到每次执行到 if if 语句时,计算条件语句时,计算条件2 2的值;的值;如果条件如果条件2 2的值非零,则跳出循环语句;的值非零,则跳出循环语句;否则,执行否则,执行 if if 语句的下一条语句。语句的下一条语句。编辑课件56例

21、例7.7.一球从一球从100100米高度自由落下,每次落地米高度自由落下,每次落地 后反弹回原高度的一半,再落下。求它在第后反弹回原高度的一半,再落下。求它在第1010次落地时共次落地时共经过多少米?第经过多少米?第1010次反弹多高?次反弹多高? float h=100.0, sum=0.0; int n; for( n=1; ; n+) sum += h; h = h/2; /落地后反弹跳回原高度的一半落地后反弹跳回原高度的一半 if( n=10 ) break; /终止执行本循环终止执行本循环 sum += h; printf(“共经过共经过%f米,第米,第10次反弹次反弹%f米米n,sum,h);编辑课件57Continue 语句语句:continue continue 语句类似于语句类似于 break break 语句,但不是退出循环,而语句,但不是退出循环,而是是跳过循环体下部未执行的语句,回到循环头部跳过循环体下部未执行的语句,回到循环头部(while (whil

温馨提示

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

最新文档

评论

0/150

提交评论