《C语言循环结构.pptx》由会员分享,可在线阅读,更多相关《C语言循环结构.pptx(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1引例:编程计算1*2*3*4*5可以这样实现:可以这样实现:int product;int product;product=1*2*3*4*5;product=1*2*3*4*5;如果问题变为:求如果问题变为:求1*2*3*100001*2*3*10000?该问题无法用一个赋值语句实现!该问题无法用一个赋值语句实现!第1页/共63页2主要内容学习三种结构的程序设计方法顺序结构程序设计选择结构程序设计循环结构程序设计掌握每一种语句的格式、功能、执行过程和执行结果,并学习如何将这些语句组织成程序学习逻辑问题的解题思路,及递推、迭代的方法第2页/共63页循环结构程序设计1.循环的概念2.用whil
2、e语句和do-while语句实现循环3.用for 语句实现循环 4.循环的嵌套5.break语句和continue语句6.几种循环的比较7.程 序 举 例第3页/共63页4一、循环概述第4页/共63页5在很多实际问题中会遇到有规律性的重复运算,因此在程序中就需要将某些语句重复执行。一组被重复执行的语句称为循环体;每重复一次,都必须作出是继续还是停止循环的决定,这个决定所依据的条件称为循环条件;循环:在给定条件成立时,反复执行某程序段,直到条件不成立为止。第5页/共63页6循环结构入口入口入口入口nonoPAyesyes出口出口出口出口循环条件循环条件 循环体循环体第6页/共63页7循环结构需要
3、解决的两个问题循环结构需要解决的两个问题2.控制循环结构的结构描述条件表示描述方法条件表示描述方法逻辑表达式逻辑表达式关系表达式关系表达式1.1.控制循环结构执行的控制循环结构执行的条件表示条件表示while语句语句do-while语句语句实现循环结构的语句实现循环结构的语句可使用可使用c c中的中的任意表达式任意表达式for语句语句第7页/共63页81 1、while while 语句:whilewhilewhilewhile(表达式)语句;(表达式)语句;(表达式)语句;(表达式)语句;1.1.计算表达式的值;计算表达式的值;计算表达式的值;计算表达式的值;2.2.当表达式的值为非当表达式
4、的值为非当表达式的值为非当表达式的值为非0 0 0 0时,反复执行时,反复执行时,反复执行时,反复执行whilewhilewhilewhile中的语句;中的语句;中的语句;中的语句;3.3.当表达式的值为当表达式的值为当表达式的值为当表达式的值为0 0 0 0时,时,时,时,whilewhilewhilewhile循环结束。循环结束。循环结束。循环结束。功能:功能:while while 语句用来实现语句用来实现“当型当型”循环。循环。执行流程:执行流程:第8页/共63页9while 语句执行流程:语句执行流程:0 0非非非非0 0表达式表达式表达式表达式=?=?循环体外语句循环体外语句循环体
5、外语句循环体外语句循环体语句循环体语句循环体语句循环体语句循环入口循环入口循环入口循环入口 循环循环循环循环结束结束结束结束!开始下一开始下一开始下一开始下一次循环次循环次循环次循环特点:先判断,后特点:先判断,后执行;若条件不成执行;若条件不成立,则有可能一次立,则有可能一次也不执行。也不执行。适合的情况:适合的情况:适合的情况:适合的情况:知知知知道控制循环的条件道控制循环的条件道控制循环的条件道控制循环的条件为某个逻辑表达式为某个逻辑表达式为某个逻辑表达式为某个逻辑表达式的值,而且在循环的值,而且在循环的值,而且在循环的值,而且在循环中该表达式的值会中该表达式的值会中该表达式的值会中该表
6、达式的值会被改变。被改变。被改变。被改变。第9页/共63页10例1.编程计算1+2+3+10000方案一、sum =sum+i;i=i+1;第10页/共63页11方案二、方案二、第11页/共63页12方案三、方案三、第12页/共63页132、do-while 语句:do do 语句语句;whilewhile(表达式);(表达式);1.1.执行语句;执行语句;执行语句;执行语句;2.2.计算表达式的值;计算表达式的值;计算表达式的值;计算表达式的值;3.3.当表达式的值为非当表达式的值为非当表达式的值为非当表达式的值为非0 0 0 0时,再次执行时,再次执行时,再次执行时,再次执行dododod
7、o中的语句;中的语句;中的语句;中的语句;4.4.当表达式的值为当表达式的值为当表达式的值为当表达式的值为0 0 0 0时,时,时,时,do-whiledo-whiledo-whiledo-while循环结束。循环结束。循环结束。循环结束。执行流程:执行流程:第13页/共63页14真真真真(非非非非0)0)表达式表达式表达式表达式=?=?语句语句语句语句循环体外语句循环体外语句循环体外语句循环体外语句0 0do-while 语句执行流程:语句执行流程:循环循环循环循环结束结束结束结束!开始下一开始下一开始下一开始下一次循环次循环次循环次循环特点:先执行,后判特点:先执行,后判断;循环至少执行一
8、断;循环至少执行一次语句。次语句。第14页/共63页15例例2.用用do-while语句实现语句实现1+2+3+10000第15页/共63页16例例2.用用do-while语句实现语句实现1+2+3+10000第16页/共63页17例例2.用用do-while语句实现语句实现1+2+3+10000改成while语句注意两个语句的顺序!第17页/共63页18例例3.3.求满足求满足 1+2+3+n500 1+2+3+n500 中最大的中最大的 N N,并求其和,编写程序实现。,并求其和,编写程序实现。分析分析本题还是一个累加求和的问本题还是一个累加求和的问题,当累加和题,当累加和sumsum 5
9、00500时反时反复执行循环,否则结束循环复执行循环,否则结束循环步骤步骤定义变量:定义变量:sumsum,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;再判断再判
10、断m m是否仍然是否仍然00;当循环结束时,即:当循环结束时,即:m m等于等于0;0;结果:结果:numnum的值即为的值即为m m的位数;的位数;第23页/共63页24第24页/共63页25第25页/共63页26求解方法:(2)分别正向打印出每一位数字;a)首先应求出m的位数num;b)然后从最高位开始输出;c)最高位为:m/10num-1;d)除了最高位以外,其他的部分为:除了最高位以外,其他的部分为:m%10num-1;e)循环直到最后一位输出结束。循环直到最后一位输出结束。第26页/共63页27求解方法:(3)逆序打印出各位数字;a)从最低位开始输出;b)最低位为:m/10;c)除去
11、最低位,其它的部分为:除去最低位,其它的部分为:m%10;d)循环,直到最高位输出结束。循环,直到最高位输出结束。第27页/共63页第28页/共63页29(1):求位数(2):从高位到低位求每一位。(3):从低位到高位求每一位。第29页/共63页30第30页/共63页31(2):从高位到低位求每一位。第31页/共63页32(3):从低位到高位求每一位。第32页/共63页循环结构程序设计1.循环的概念2.用while语句和do-while语句实现循环3.用for 语句实现循环 4.循环的嵌套5.break语句和continue语句6.几种循环的比较7.程 序 举 例第33页/共63页343 3、
12、for for 语句:for(for(表达式表达式1 1;表达式表达式2 2;表达式表达式3 3)语句语句;表达式1 1:一般为赋值表达式,给控制变量赋初值;表达式2 2:关系表达式或逻辑表达式,循环控制条件;表达式3 3:一般为赋值表达式,给控制变量增量/减量;语句:循环体,当有多条语句时,必须使用复合语句。第34页/共63页350真真(非非0)表达式表达式2=?语句;语句;循环体外语句循环体外语句表达式表达式1;for(for(表达式表达式1 1;表达式;表达式2 2;表达式;表达式3)3)语句;语句;表达式表达式3;循环循环循环循环结束!结束!结束!结束!开始下一开始下一开始下一开始下一
13、次循环次循环次循环次循环第35页/共63页363 3、for for 语句:for for语句很好地体现了正确表达循环结构应该语句很好地体现了正确表达循环结构应该注意的三个问题:注意的三个问题:1.1.循环控制变量的初始化循环控制变量的初始化2.2.循环的条件循环的条件3.3.循环控制变量的更新循环控制变量的更新 forfor语句适合的情况语句适合的情况已知循环次数已知循环次数第36页/共63页37例6.用 for 语句计算 1+2+.+100i=1i=1i=100i=100sum+=isum+=ii+i+假假假假真真真真for(i=1;i=100;i+)sum+=i;第37页/共63页38例
14、6.用 for 语句计算 1+2+.+100第38页/共63页39例6.用 for 语句计算 1+2+.+100inti=0,sum=0;while(i=10)sum+=i;i+;inti=0,sum=0;do i+;sum+=i;while(i10);改写成while和do-while语句。第39页/共63页40forfor语句的三个表达式都是可以省略的,但分号“;”;”绝对不能省略。forfor语句有以下几种格式:(1 1)for(;)for(;)语句;(2 2)for(;for(;表达式2;2;表达式3)3)语句;(3 3)forfor(表达式1;1;表达式2;)2;)语句;(4 4)f
15、or(i=1,j=n;i j;i+,j-)for(i=1,j=n;i j;i+,j-)语句;第40页/共63页411、for(;)该语句是一个死循环,一般用条件表达式加break语句在循环体内适当位置,一旦条件满足时,用break语句跳出for循环。2、for(;表达式2;表达式3)使用条件是:循环控制变量的初值不是已知常量,而是在前面通过计算得到。例如:i=m-n;for(;ik;i+)语句;第41页/共63页423、for(表达式1;表达式2;)语句 一般当循环控制变量非规则变化,而且循环体中有更新控制变量的语句时使用。例如:for(i=1;i=100;)i=i*2+1;第42页/共63页
16、434、for(i=1,j=n;ij;i+,j-)语句;在for语句中,表达式1、表达式3都可以有一项或多项,如本例中,表达式1同时为i和j赋初值,表达式3同时改变i和j的值。当有不止一项时,各项之间用逗号“,”分隔。第43页/共63页44循环结构小结同一个问题,往往既可以用同一个问题,往往既可以用 whilewhile语句解决,也可以用语句解决,也可以用 do-whiledo-while或者或者forfor语句来解决,但在实际应用中,应根据语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。具体情况来选用不同的循环语句。选用的一般原则是:选用的一般原则是:1 1、如果循环次数在执
17、行循环体之前就已确定,一般如果循环次数在执行循环体之前就已确定,一般用用 forfor语句。如果循环次数是由循环体的执行情况确定语句。如果循环次数是由循环体的执行情况确定的,一般用的,一般用 whilewhile语句或者语句或者do-whiledo-while语句;语句;2 2、当循环体至少执行一次时,用、当循环体至少执行一次时,用 do-whiledo-while语句,反语句,反之,如果循环体可能一次也不执行,则选用之,如果循环体可能一次也不执行,则选用whilewhile语句。语句。第44页/共63页循环结构程序设计循环的概念用while语句和do-while语句实现循环用for 语句实现
18、循环 循环的嵌套break语句和continue语句几种循环的比较程 序 举 例第45页/共63页46循环的嵌套一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多重循环。循环循环1循环循环2第46页/共63页47for()for()whilewhile()()DoDo for()for()while()while()while()while()for()for()for()for()forfor()()以下四种均为合法的嵌套循环结构以下四种均为合法的嵌套循环结构第47页/共63页48注意:三种循环语句for、while、do-while可以互相嵌套自由
19、组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。如下面这种形式是不允许的:do.for(;).while();第48页/共63页499 98 87 76 65 54 43 32 21 19 98 87 76 65 54 43 32 21 1818172726363545445453636272718189 964645656484840403232242416168 84949424235352828212114147 7363630302424181812126 625252020151510105 5161612128 84 49 96 63 34 42 21 1例7.7.打印乘
20、法“九九表”第49页/共63页50分析:1.定义变量 i,j,m;2.i表示行,从1 变化到 9;3.j表示列,从1 变化到 9;4.m=i*j;表示表中的值;5.i 取初值 1;6.j 从 1 变化到 i;计算出每一个m=i*j,输出m,但不换行。7.输出换行;8.i 做一次变化,如果i 9,则,转回步骤 6;否则循环结束。第50页/共63页51第51页/共63页循环结构程序设计循环的概念用while语句和do-while语句实现循环用for 语句实现循环 循环的嵌套break语句和continue语句几种循环的比较程 序 举 例第53页/共63页54break 语句:用于循环语句和 swi
21、tch 语句中,作用是 跳出它所在的循环语句或switch 语句。格式:while(条件1);if(条件2)break;执行过程:每次执行到 if 语句时,计算条件2的值;如果条件2的值非零,则跳出循环语句;否则,执行 if 语句的下一条语句。第54页/共63页55例7.一球从100米高度自由落下,每次落地 后反弹回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高?floath=100.0,sum=0.0;intn;for(n=1;n+)sum+=h;h=h/2;/落地后反弹跳回原高度的一半if(n=10)break;/终止执行本循环sum+=h;printf(“共经过
22、%f米,第10次反弹%f米n,sum,h);第55页/共63页56Continue 语句:continue 语句类似于 break 语句,但不是退出循环,而是跳过循环体下部未执行的语句,回到循环头部(while 处)接着进行下一次循环。格式:while(条件1).;if(条件2)continue;.Continue 执行过程:当条件1成立时,进入 while 的循环体;执行到 if 语句时,计算条件2的值;如果条件2满足,执行 continue 语句,结果为:执行转到 while 处开始下一次循环;否则,执行 if 的下一条语句。第56页/共63页57continuecontinue语句:语句
23、:continue continue 语句的作用语句的作用是结束是结束本次循环本次循环,直接,直接进行下一轮循环的判断。进行下一轮循环的判断。循环中循环中continuecontinue语句执行流程语句执行流程假假表达式2表达式1语句序列语句序列真真真真continue假假该语句只能用在该语句只能用在forfor、whilewhile、do-whiledo-while语句语句中,常与中,常与ifif语句配合,语句配合,起到起到加速循环加速循环的作用。的作用。第57页/共63页58例例8.8.打印出打印出100-200100-200之间所有能被之间所有能被 7 7 整除的整数。整除的整数。第58页/共63页59第59页/共63页60例9.break 和continue 第60页/共63页61例9.break 和continue 第61页/共63页62第62页/共63页63谢谢您的观看!第63页/共63页