《(4周)3章 程序控制结构(循环结构).ppt》由会员分享,可在线阅读,更多相关《(4周)3章 程序控制结构(循环结构).ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1第第3章章 循环结构程序设计循环结构程序设计邹琪邹琪计算机与信息技术学院工程系计算机与信息技术学院工程系九教北九教北5175172 2教学目标教学目标学习三种结构的程序设计方法学习三种结构的程序设计方法学习三种结构的程序设计方法学习三种结构的程序设计方法n n顺序结构程序设计顺序结构程序设计顺序结构程序设计顺序结构程序设计n n选择结构程序设计选择结构程序设计选择结构程序设计选择结构程序设计n n循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计掌握每一种语句的格式、功能、执行过程和执行结掌握每一种语句的格式、功能、执行过程和执行结掌握每一种语句的格式、功能、执行过程和执行结掌
2、握每一种语句的格式、功能、执行过程和执行结果,并学习如何将这些语句组织成程序果,并学习如何将这些语句组织成程序果,并学习如何将这些语句组织成程序果,并学习如何将这些语句组织成程序学习递推、迭代问题的解题思路及方法学习递推、迭代问题的解题思路及方法学习递推、迭代问题的解题思路及方法学习递推、迭代问题的解题思路及方法3循环概述循环概述三种循环结构语句三种循环结构语句n while while语句语句n do-whiledo-while语句语句n for for语句语句循环的嵌套循环的嵌套breakbreak和和continuecontinue语句语句循环结构的应用循环结构的应用主要内容主要内容4引
3、例:编程计算引例:编程计算1*2*3*4*5 可以这样实现:可以这样实现:intproduct;product=1*2*3*4*5;如果问题变为:如果问题变为:求求1*2*3*10000?该问题无法用一个赋值语句实现!该问题无法用一个赋值语句实现!典型的循环结构程序典型的循环结构程序5一、循环概述一、循环概述6循环结构循环结构在很多实际问题中会遇到有规律性的重复运在很多实际问题中会遇到有规律性的重复运算,因此在程序中就需要将某些语句重复执算,因此在程序中就需要将某些语句重复执行。行。一组被重复执行的语句称为一组被重复执行的语句称为循环体循环体;每重复一次,都必须作出是继续还是停止循环的决每重复
4、一次,都必须作出是继续还是停止循环的决定,这个决定所依据的条件称为定,这个决定所依据的条件称为循环条件循环条件;循环循环:在给定条件成立时,反复执行某程序:在给定条件成立时,反复执行某程序段,直到条件不成立为止。段,直到条件不成立为止。7循环结构循环结构入口入口入口入口nonoPAyesyes出口出口出口出口循环条件循环条件 循环体循环体8循环结构需要解决的两个问题循环结构需要解决的两个问题2.2.控制循环结构的控制循环结构的结构描述结构描述条件表示描述方法条件表示描述方法逻辑表达式逻辑表达式关系表达式关系表达式1.1.控制循环结构执行的控制循环结构执行的条件表示条件表示while语句语句do
5、-while语句语句实现循环结构的语句实现循环结构的语句可使用可使用c c中的中的任意表达式任意表达式for语句语句9while 语句语句10while while 语句:语句:whilewhilewhilewhile(表达式)语句;(表达式)语句;(表达式)语句;(表达式)语句;1.1.计算表达式的值;计算表达式的值;计算表达式的值;计算表达式的值;2.2.当表达式的值为非当表达式的值为非当表达式的值为非当表达式的值为非0 0 0 0时,反复执行时,反复执行时,反复执行时,反复执行whilewhilewhilewhile中的中的中的中的语句;语句;语句;语句;3.3.当表达式的值为当表达式的
6、值为当表达式的值为当表达式的值为0 0 0 0时,时,时,时,whilewhilewhilewhile循环结束。循环结束。循环结束。循环结束。功能:功能:while while 语句用来实现语句用来实现“当型当型”循环。循环。执行流程:执行流程:11while 语句执行流程:语句执行流程:0 0非非非非0 0表达式表达式表达式表达式=?=?循环体外语句循环体外语句循环体外语句循环体外语句循环体语句循环体语句循环体语句循环体语句循环入口循环入口循环入口循环入口 循环循环循环循环结束!结束!结束!结束!开始下一开始下一开始下一开始下一次循环次循环次循环次循环特点:先判断,后特点:先判断,后执行;若
7、条件不成执行;若条件不成立,则有可能一次立,则有可能一次也不执行。也不执行。适合的情况:适合的情况:适合的情况:适合的情况:知道控制循知道控制循知道控制循知道控制循环的条件为某个环的条件为某个环的条件为某个环的条件为某个逻辑表达式的值,逻辑表达式的值,逻辑表达式的值,逻辑表达式的值,而且在循环中该而且在循环中该而且在循环中该而且在循环中该表达式的值会被表达式的值会被表达式的值会被表达式的值会被改变。改变。改变。改变。12例例1.编程计算编程计算1+2+3+10000#include#includevoid main()void main()int i=1,sum=0;int i=1,sum=0
8、;while(i=while(i=1000010000)/*/*循环结构循环结构循环结构循环结构*/sum+=i;sum+=i;i+;i+;printf(“sum=%dn”,sum);printf(“sum=%dn”,sum);sum =sum+i;i=i+1;13#include#define n 10000void main()int i=1,sum=0;while(i=n)sum+=i;i+;printf(“sum=%dn”,sum);例例1.编程计算编程计算1+2+3+1000014#include#includevoid main()void main()int i=1,sum=0,
9、int i=1,sum=0,n n;prprintf(“intf(“请输入请输入请输入请输入n n的值的值的值的值:n”);:n”);scanf(“%d”,&n);scanf(“%d”,&n);while(i=while(i=n n)sum+=i;sum+=i;i+;i+;printf(“sum=%dn”printf(“sum=%dn”,sum)sum);do-while 语句语句1516do-while do-while 语句:语句:do do 语句语句;whilewhile(表达式);(表达式);1.1.执行语句;执行语句;执行语句;执行语句;2.2.计算表达式的值;计算表达式的值;计算表
10、达式的值;计算表达式的值;3.3.当表达式的值为非当表达式的值为非当表达式的值为非当表达式的值为非0 0 0 0时,再次执行时,再次执行时,再次执行时,再次执行dodododo中的语句;中的语句;中的语句;中的语句;4.4.当表达式的值为当表达式的值为当表达式的值为当表达式的值为0 0 0 0时,时,时,时,do-whiledo-whiledo-whiledo-while循环结束。循环结束。循环结束。循环结束。执行流程:执行流程:17真真真真(非非非非0)0)表达式表达式表达式表达式=?=?语句语句语句语句循环体外语句循环体外语句循环体外语句循环体外语句0 0do-while 语句执行流程:语
11、句执行流程:循环循环循环循环结束!结束!结束!结束!开始下一开始下一开始下一开始下一次循环次循环次循环次循环特点:先执行,后特点:先执行,后判断;循环至少执判断;循环至少执行一次语句。行一次语句。18#include#includevoidmain()voidmain()inti=0,sum=0;inti=0,sum=0;doi+;sum+=i;while(i10000);printf(sum=%dn,sum);printf(sum=%dn,sum);inti=1,sum=0;while(i=10000)sum+=i;i+;例例2.用用do-while语句实现语句实现1+2+3+1000019
12、例例3.3.求满足求满足 1+2+3+1+2+3+n500 +n500 中最大的中最大的 N N,并求其和,编写程序实现。,并求其和,编写程序实现。分析分析本题还是一个累加求和的问本题还是一个累加求和的问题,当累加和题,当累加和sumsum 500500时反时反复执行循环,否则结束循环复执行循环,否则结束循环步骤步骤定义变量:定义变量:sumsum,n n;sum sum 和和 n n 分别赋初值;分别赋初值;n=0n=0;sum=0sum=0;当当 sum sum 500 500 时反复执行循环,时反复执行循环,否则结束循环。否则结束循环。语句为语句为:While(sum500)While(
13、sum500)+n+n;sum+=nsum+=n;20#include#includevoid main()void main()int n=0 int n=0,sum=0sum=0;while(sum500)while(sum500)+n +n;sum+=nsum+=n;printf(n=%d printf(n=%d,sum=%dnsum=%dn,n-1n-1,sum-n)sum-n);Why?为什么不是为什么不是为什么不是为什么不是n n,sumsum?结果结果n=31,sum=496程序程序1+2+3+n=n)n(m=n);2.2.设设 r r 表示表示 m m 除以除以 n n 的余数
14、;的余数;即:即:r=m%n;r=m%n;如果,如果,r=0 r=0 则则 n n 中的值为中的值为m m 和和 n n的最大公约数;否则执行:的最大公约数;否则执行:m=n;m=n;n=r;n=r;转回转回“如果如果”处,继续执行。处,继续执行。最小公倍数最小公倍数m m 和和 n n 的乘积的乘积 除以最大公约数除以最大公约数22#include#include void main()void main()int m,n,GCD,LCM,r,p int m,n,GCD,LCM,r,p;scanf(“%d,%d”scanf(“%d,%d”,&m,&n)&m,&n);/*(mn)*/*(mn)
15、*/r=m%n;r=m%n;p=m*n;p=m*n;while(r)while(r)m=nm=n;n=rn=r;r=m%nr=m%n;GCD=n;GCD=n;LCM=p/GCD;LCM=p/GCD;printf(“the greatest common division=%dn”printf(“the greatest common division=%dn”,GCD);GCD);printf(“the lease common multiple=%d n”printf(“the lease common multiple=%d n”,LCM);LCM);while(r!=0)while(r!
16、=0)23例例例例5.5.用户输入多个字符,要求按以下规律进行翻译:用户输入多个字符,要求按以下规律进行翻译:用户输入多个字符,要求按以下规律进行翻译:用户输入多个字符,要求按以下规律进行翻译:将用户输入的每一个英文字母变为它后面的字母输出,将用户输入的每一个英文字母变为它后面的字母输出,将用户输入的每一个英文字母变为它后面的字母输出,将用户输入的每一个英文字母变为它后面的字母输出,如:将如:将如:将如:将A A变成变成变成变成B B,B B变成变成变成变成C C,Z Z变成变成变成变成A A。用户输入的非字母的字符原样输出。用户输入的非字母的字符原样输出。用户输入的非字母的字符原样输出。用户
17、输入的非字母的字符原样输出。!作为用户输入结束的标志。作为用户输入结束的标志。作为用户输入结束的标志。作为用户输入结束的标志。分析分析1.1.读入第一个字符;读入第一个字符;2.2.当其不是当其不是“!”时,进入循环;时,进入循环;3.3.判断其是否为字母,如果是则判断其是否为字母,如果是则 将其翻译成该字母的后继;将其翻译成该字母的后继;4.4.如果读入的字符不是字母,原如果读入的字符不是字母,原 样输出;样输出;5.5.再读入下一个字符,返回再读入下一个字符,返回2 2步;步;6.6.当输入字符为当输入字符为“!”时结束。时结束。24#includevoidmain()charch;sca
18、nf(%c,&ch);while(ch!=!)if(ch=a&ch=A&ch0 m 0 时,开始统计时,开始统计时,开始统计时,开始统计mm的位数的位数的位数的位数while(m0)while(m0)因为因为因为因为m0m0,mm至少有一位,至少有一位,至少有一位,至少有一位,num+;num+;然后把然后把然后把然后把mm的个位去除;的个位去除;的个位去除;的个位去除;m=m/10;m=m/10;再判断再判断再判断再判断mm是否仍然是否仍然是否仍然是否仍然00;回到循环头部回到循环头部回到循环头部回到循环头部当循环结束时,即:当循环结束时,即:当循环结束时,即:当循环结束时,即:m=0;m=
19、0;结果:结果:结果:结果:numnum的值即为的值即为的值即为的值即为mm的位数;的位数;的位数;的位数;28求解方法:求解方法:2.2.分别正向打印出每一位数字;分别正向打印出每一位数字;分别正向打印出每一位数字;分别正向打印出每一位数字;a)a)首先应求出首先应求出首先应求出首先应求出mm的位数的位数的位数的位数num;num;b)b)然后从最高位开始输出;然后从最高位开始输出;然后从最高位开始输出;然后从最高位开始输出;c)c)最高位为:最高位为:最高位为:最高位为:m/10m/10num-1num-1;d)d)除了最高位以外,其他的部分为:除了最高位以外,其他的部分为:除了最高位以外
20、,其他的部分为:除了最高位以外,其他的部分为:m%10m%10num-1num-1;e)e)循环直到最后一位输出结束。循环直到最后一位输出结束。循环直到最后一位输出结束。循环直到最后一位输出结束。29求解方法:求解方法:3.3.逆序打印出各位数字;逆序打印出各位数字;逆序打印出各位数字;逆序打印出各位数字;a)a)从最低位开始输出;从最低位开始输出;从最低位开始输出;从最低位开始输出;b)b)最低位为:最低位为:最低位为:最低位为:m/10m/10;c)c)除去最低位,其它的部分为:除去最低位,其它的部分为:除去最低位,其它的部分为:除去最低位,其它的部分为:m%10m%10;d)d)循环,直
21、到最高位输出结束。循环,直到最高位输出结束。循环,直到最高位输出结束。循环,直到最高位输出结束。for 语句语句3031for for 语句:语句:for(for(表达式表达式1 1;表达式表达式2 2;表达式表达式3 3)语句语句;表达式表达式1 1:一般为赋值表达式,给控制变量赋初值;:一般为赋值表达式,给控制变量赋初值;表达式表达式2 2:关系表达式或逻辑表达式,循环控制条件;:关系表达式或逻辑表达式,循环控制条件;表达式表达式3 3:一般为赋值表达式,给控制变量增量:一般为赋值表达式,给控制变量增量/减量;减量;语句语句:循环体,当有多条语句时,必须使用复合语句:循环体,当有多条语句时
22、,必须使用复合语句。320真真(非非0)表达式表达式2=?语句;语句;循环体外语句循环体外语句表达式表达式1;for 语句执行流程:语句执行流程:for(for(表达式表达式1 1;表达式;表达式2 2;表达式;表达式3)3)语句;语句;表达式表达式3;循环循环循环循环结束!结束!结束!结束!开始下一开始下一开始下一开始下一次循环次循环次循环次循环33for for 语句:语句:1.1.首先计算表达式首先计算表达式首先计算表达式首先计算表达式1 1 1 1的值,给循环变量赋初值;的值,给循环变量赋初值;的值,给循环变量赋初值;的值,给循环变量赋初值;2.2.再测试表达式再测试表达式再测试表达式
23、再测试表达式2 2 2 2的值,若其值非的值,若其值非的值,若其值非的值,若其值非0 0 0 0,则执行循环,则执行循环,则执行循环,则执行循环体语句;体语句;体语句;体语句;3.3.然后计算表达式然后计算表达式然后计算表达式然后计算表达式 3 3 3 3 的值,修改循环变量的值;的值,修改循环变量的值;的值,修改循环变量的值;的值,修改循环变量的值;回到表达式回到表达式回到表达式回到表达式2 2 2 2 处。处。处。处。4.4.直到表达式直到表达式直到表达式直到表达式 2 2 2 2 的值为的值为的值为的值为 0(0(0(0(假假假假),则退出循环。,则退出循环。,则退出循环。,则退出循环。
24、执行流程:执行流程:for(for(表达式表达式1 1;表达式;表达式2 2;表达式;表达式3)3)语句;语句;34表达式表达式1表达式表达式2循环体语句循环体语句表达式表达式3假假真真当表达式当表达式 2 成立成立时,执行循环体时,执行循环体当表达式当表达式 2 不成不成立时,退出循环立时,退出循环对循环变量赋初值对循环变量赋初值修改循环变量的值修改循环变量的值返回循返回循环头部环头部for for 语句:语句:35forfor语句很好地体现了正确表达循环结构应该语句很好地体现了正确表达循环结构应该注意的三个问题:注意的三个问题:1.1.循环控制变量的初始化循环控制变量的初始化2.2.循环的
25、条件循环的条件3.3.循环控制变量的更新循环控制变量的更新 forfor语句适合的情况语句适合的情况已知循环次数已知循环次数36例例6.用用 for 语句计算语句计算 1+2+.+10#includevoidmain()inti,sum=0;for(i=1;i=10;i+)sum+=i;printf(“%d”,sum);i=1i=1i=10i=10sum+=isum+=ii+i+假假假假真真真真37例例6与用与用while、do-while实现差异?实现差异?#includevoidmain()inti,sum=0;for(i=1;i=10;i+)sum+=i;printf(“%d”,sum)
26、;inti=1,sum=0;while(i=10)sum+=i;i+;inti=0,sum=0;doi+;sum+=i;while(i10);38forfor语句的三个表达式都是可以省略的,语句的三个表达式都是可以省略的,但分号但分号“;”绝对不能省略绝对不能省略。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=
27、n;i j;i+,j-)语句语句;注意:注意:39for(;)for(;)该语句是一个死循环,一般用条件表达式加该语句是一个死循环,一般用条件表达式加breakbreak语句在循环体内适当位置,一旦条件满足时,语句在循环体内适当位置,一旦条件满足时,用用breakbreak语句跳出语句跳出forfor循环。循环。for(for(;表达式;表达式2 2;表达式;表达式3)3)使用条件是:循环控制变量的初值不是已知使用条件是:循环控制变量的初值不是已知常量,而是在前面通过计算得到。常量,而是在前面通过计算得到。例如:例如:i=m-n;i=m-n;for(for(;ikik;i+)i+)语句;语句;
28、40forfor(表达式(表达式1 1;表达式;表达式2 2;)语句语句 一般当循环控制变量非规则变化,而且循一般当循环控制变量非规则变化,而且循环体中有更新控制变量的语句时使用。环体中有更新控制变量的语句时使用。例如:例如:for(i=1for(i=1;i=100i=100;)i=i*2+1;i=i*2+1;for(i=1for(i=1,j=nj=n;ijij;i+i+,j-j-)语句;语句;在在forfor语句中,表达式语句中,表达式1 1、表达式、表达式3 3都可以有一都可以有一项或多项,如本例中,表达式项或多项,如本例中,表达式1 1同时为同时为i i和和j j赋初值,赋初值,表达式表
29、达式3 3同时改变同时改变i i和和j j的值。当有不止一项时,各的值。当有不止一项时,各项之间用逗号项之间用逗号“,”分隔。分隔。41循环的嵌套循环的嵌套一个循环体内又包一个循环体内又包含另一个完整的循含另一个完整的循环结构,称为环结构,称为循环循环的嵌套的嵌套。内嵌的循环中还可内嵌的循环中还可以嵌套循环,这就以嵌套循环,这就是是多重循环多重循环。循环循环1循环循环242for()for()whilewhile()()DoDo for()for()whilewhile()()while()while()for()for()for()for()for()for()以下四种均为合法的嵌套循环结构
30、以下四种均为合法的嵌套循环结构43三种循环语句三种循环语句forfor、whilewhile、do-whiledo-while可以互相嵌套可以互相嵌套自由组合。自由组合。但要注意的是,各循环必须完整,相互之间绝不允但要注意的是,各循环必须完整,相互之间绝不允许交叉。如下面这种形式是不允许的:许交叉。如下面这种形式是不允许的:do.for(;).while();注意:注意:449 98 87 76 65 54 43 32 21 19 98 87 76 65 54 43 32 21 1818172726363545445453636272718189 96464565648484040323224
31、2416168 84949424235352828212114147 7363630302424181812126 625252020151510105 5161612128 84 49 96 63 34 42 21 1例例7.打印乘法打印乘法“九九表九九表”45分析:分析:1.1.定义变量定义变量 i i,j j,m m;2.2.i i表示行,从表示行,从1 1 变化到变化到 9 9;3.3.j j表示列,从表示列,从1 1 变化到变化到 9 9;4.4.m=i*jm=i*j;表示表中的值;表示表中的值;5.5.i i 取初值取初值 1 1;6.6.j j 从从 1 1 变化到变化到 i i
32、;计算出每一个;计算出每一个m=i*jm=i*j,输出输出m m,但不换行。,但不换行。7.7.输出换行;输出换行;8.8.i i 做一次变化,如果做一次变化,如果i 9i 9,则,转回步骤,则,转回步骤 6 6;否则循环结束。;否则循环结束。46#include#includevoid main()void main()int i int i,j j,mm;printf(“*”)printf(“*”);for(i=1for(i=1;i=9i=9;i+)i+)printf(“%4d”printf(“%4d”,i)i);printf(“n”)printf(“n”);for(i=1for(i=1;
33、i=9i=9;i+)i+)printf(“%d”printf(“%d”,i)i);for(j=1for(j=1;j=ij=i;j j+)m=i*j m=i*j;printf(“printf(“%4d”4d”,m)m);printf(“n”)printf(“n”);程序:程序:程序:程序:输出第一行输出第一行输出第一行输出第一行内循环内循环内循环内循环外循环外循环外循环外循环47主程序开始主程序开始主程序开始主程序开始定义三个整型变量定义三个整型变量定义三个整型变量定义三个整型变量 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 91 1 1 12 2 2 42 43 3 3
34、6 93 6 94 4 4 8 12 164 8 12 165 5 5 10 15 20 255 10 15 20 256 6 6 12 18 24 30 366 12 18 24 30 36for(j=1for(j=1;j=ij=i;j+)j+)m=i*j m=i*j;printf(“%4d”printf(“%4d”,m)m);7 7 7 14 21 28 35 42 497 14 21 28 35 42 498 8 8 16 24 32 40 48 56 648 16 24 32 40 48 56 649 9 9 18 27 36 45 54 63 72 819 18 27 36 45 5
35、4 63 72 81输出一个输出一个输出一个输出一个*号,不换行号,不换行号,不换行号,不换行i ij j printf(“n”)printf(“n”);计算出每一列的值计算出每一列的值计算出每一列的值计算出每一列的值并输出之并输出之并输出之并输出之依次输出依次输出依次输出依次输出每一行每一行每一行每一行执行结果:执行结果:执行结果:执行结果:void main()void main()int iint i,j j,mm;printf(“*”)printf(“*”);for(j=1for(j=1;j=9j=9;j+)j+)printf(“%4d”printf(“%4d”,j)j);printf
36、(“n”)printf(“n”);for(i=1for(i=1;i=9i=9;i+)i+)printf(“%d”printf(“%d”;i)i);不换行连续地输不换行连续地输出出1、2、9换行输出换行输出换行输出换行输出输出每一行的行号输出每一行的行号输出每一行的行号输出每一行的行号开始循环输出每一开始循环输出每一开始循环输出每一开始循环输出每一行行行行(外循环外循环外循环外循环)48循环结构小结循环结构小结同一个问题,往往既可以用同一个问题,往往既可以用while语句解决,语句解决,也可以用也可以用do-while或者或者for语句来解决,但在实际语句来解决,但在实际应用中,应根据具体情况来
37、选用不同的循环语句。应用中,应根据具体情况来选用不同的循环语句。选用的一般原则是:选用的一般原则是:如果循环次数在执行循环体之前就已确定,一般如果循环次数在执行循环体之前就已确定,一般用用for语句。如果循环次数是由循环体的执行情况确语句。如果循环次数是由循环体的执行情况确定的,一般用定的,一般用while语句或者语句或者do-while语句;语句;当循环体至少执行一次时,用当循环体至少执行一次时,用do-while语句,反语句,反之,如果循环体可能一次也不执行,则选用之,如果循环体可能一次也不执行,则选用while语语句。句。49break 语句语句:用于循环语句和用于循环语句和 switc
38、h switch 语句中,作用是语句中,作用是 跳出它所在的循环语句或跳出它所在的循环语句或switch switch 语句语句。格式:格式:while(while(条件条件1)1);if(if(条件条件2)break2)break;执行过程:执行过程:每次执行到每次执行到 if if 语句时,计算条件语句时,计算条件2 2的值;的值;如果条件如果条件2 2的值非零,则跳出循环语句;的值非零,则跳出循环语句;否则,执行否则,执行 if if 语句的下一条语句。语句的下一条语句。50例例7.7.一球从一球从100100米高度自由落下,每次落地米高度自由落下,每次落地 后反弹回原高度的一半,再落下
39、。求它在后反弹回原高度的一半,再落下。求它在第第1010次落地时共经过多少米?第次落地时共经过多少米?第1010次反弹多次反弹多高?高?floath=100.0,sum=0.0;intn;for(n=1;n+)sum+=h;h=h/2;/落地后反弹跳回原高度的一半落地后反弹跳回原高度的一半if(n=10)break;/终止执行本循环终止执行本循环sum+=h;printf(“共经过共经过%f米,第米,第10次反弹次反弹%f米米n,sum,h);51Continue 语句语句:continue continue continue continue 语句类似于语句类似于语句类似于语句类似于 bre
40、ak break break break 语句,但不是退出循环,而语句,但不是退出循环,而语句,但不是退出循环,而语句,但不是退出循环,而是是是是跳过循环体下部未执行的语句,回到循环头部跳过循环体下部未执行的语句,回到循环头部跳过循环体下部未执行的语句,回到循环头部跳过循环体下部未执行的语句,回到循环头部(while(while(while(while 处处处处)接着进行下一次循环。接着进行下一次循环。接着进行下一次循环。接着进行下一次循环。格式:格式:格式:格式:while(while(条件条件条件条件1)1).;if(if(条件条件条件条件2)continue2)continue;.Con
41、tinue Continue Continue Continue 执行过程:执行过程:执行过程:执行过程:当条件当条件当条件当条件1 1 1 1成立时,进入成立时,进入成立时,进入成立时,进入 while while while while 的循环体;的循环体;的循环体;的循环体;执行到执行到执行到执行到 if if if if 语句时,计算条件语句时,计算条件语句时,计算条件语句时,计算条件2 2 2 2的值;的值;的值;的值;如如如如果果果果条条条条件件件件2 2 2 2满满满满足足足足,执执执执行行行行 continue continue continue continue 语语语语句句
42、句句,结结结结果果果果为为为为:执执执执行行行行转转转转到到到到 while while while while 处处处处开开开开始始始始下下下下一一一一次次次次循循循循环环环环;否否否否则则则则,执执执执行行行行 if if if if 的的的的下下下下一条语句。一条语句。一条语句。一条语句。52continuecontinue语句:语句:continue continue 语句的作语句的作用是结束用是结束本次循环本次循环,直接进行下一轮循直接进行下一轮循环的判断。环的判断。循环中循环中continuecontinue语句执行流程语句执行流程假假表达式表达式2表达式表达式1语句序列语句序列语
43、句序列语句序列真真真真continue假假该语句只能用在该语句只能用在forfor、whilewhile、do-whiledo-while语语句中,常与句中,常与ifif语句语句配合,起到加速循配合,起到加速循环的作用。环的作用。53例例8.8.打印出打印出100-200100-200之间所有能被之间所有能被 7 7 整除的整数整除的整数#includevoidmain()intn;for(n=100;n=200;n+)if(n%7!=0)continue;/结束本次循环结束本次循环printf(%5d,n);printf(n);54例例9.break 和和continue#include void main()int n;while(1)printf(“input an even number!n”);scanf(“%d”,&n);if(n%2=1)printf(“I said”);continue;break;printf(“Thanks,I need that!n”);55练习练习1 1本本次教案思考题次教案思考题