




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,第5章循环结构程序设计,.,2,引例:编程计算1*2*3*4*5,可以这样实现:intproduct;product=1*2*3*4*5;如果问题变为:求1*2*3*10000?该问题无法用一个赋值语句实现!,?,.,3,主要内容,学习三种结构的程序设计方法顺序结构程序设计选择结构程序设计循环结构程序设计掌握每一种语句的格式、功能、执行过程和执行结果,并学习如何将这些语句组织成程序学习逻辑问题的解题思路,及递推、迭代的方法,.,循环结构程序设计,循环的概念用while语句和do-while语句实现循环用for语句实现循环循环的嵌套break语句和continue语句几种循环的比较程序举例,.,5,一、循环概述,.,6,在很多实际问题中会遇到有规律性的重复运算,因此在程序中就需要将某些语句重复执行。一组被重复执行的语句称为循环体;每重复一次,都必须作出是继续还是停止循环的决定,这个决定所依据的条件称为循环条件;循环:在给定条件成立时,反复执行某程序段,直到条件不成立为止。,.,7,循环结构,入口,no,P,A,yes,出口,循环条件,循环体,.,8,循环结构需要解决的两个问题,2.控制循环结构的结构描述,条件表示描述方法,逻辑表达式,关系表达式,1.控制循环结构执行的条件表示,while语句,do-while语句,实现循环结构的语句,可使用c中的任意表达式,for语句,.,9,1、while语句:,while(表达式)语句;,计算表达式的值;当表达式的值为非0时,反复执行while中的语句;当表达式的值为0时,while循环结束。,功能:while语句用来实现“当型”循环。,执行流程:,.,10,while语句执行流程:,0,非0,表达式=?,循环体外语句,循环体语句,循环入口,循环结束!,开始下一次循环,特点:先判断,后执行;若条件不成立,则有可能一次也不执行。,适合的情况:知道控制循环的条件为某个逻辑表达式的值,而且在循环中该表达式的值会被改变。,.,11,例1.编程计算1+2+3+10000,方案一、,sum=sum+i;,i=i+1;,.,12,方案二、,.,13,方案三、,.,14,2、do-while语句:,do语句;while(表达式);,执行语句;计算表达式的值;当表达式的值为非0时,再次执行do中的语句;当表达式的值为0时,do-while循环结束。,执行流程:,.,15,真(非0),表达式=?,语句,循环体外语句,0,do-while语句执行流程:,循环结束!,开始下一次循环,特点:先执行,后判断;循环至少执行一次语句。,.,16,例2.用do-while语句实现1+2+3+10000,.,17,例2.用do-while语句实现1+2+3+10000,.,18,例2.用do-while语句实现1+2+3+10000,改成while语句,注意两个语句的顺序!,.,19,例3.求满足1+2+3+n500中最大的N,并求其和,编写程序实现。,分析,本题还是一个累加求和的问题,当累加和sum500时反复执行循环,否则结束循环,步骤,定义变量:sum,n;sum和n分别赋初值;n=0;sum=0;当sum0),因为m0,m至少有一位,num+;,然后把m的个位去除;,m=m/10;,再判断m是否仍然0;,当循环结束时,即:,m等于0;,结果:num的值即为m的位数;,.,25,有问题吗?,.,26,.,27,求解方法:,(2)分别正向打印出每一位数字;首先应求出m的位数num;然后从最高位开始输出;最高位为:,m/10num-1;,除了最高位以外,其他的部分为:,m%10num-1;,循环直到最后一位输出结束。,.,28,求解方法:,(3)逆序打印出各位数字;从最低位开始输出;最低位为:,m/10;,除去最低位,其它的部分为:,m%10;,循环,直到最高位输出结束。,.,30,(1):求位数,(2):从高位到低位求每一位。,(3):从低位到高位求每一位。,.,31,.,32,(2):从高位到低位求每一位。,.,33,(3):从低位到高位求每一位。,.,循环结构程序设计,循环的概念用while语句和do-while语句实现循环用for语句实现循环循环的嵌套break语句和continue语句几种循环的比较程序举例,.,35,3、for语句:,for(表达式1;表达式2;表达式3)语句;,表达式1:一般为赋值表达式,给控制变量赋初值;表达式2:关系表达式或逻辑表达式,循环控制条件;表达式3:一般为赋值表达式,给控制变量增量/减量;语句:循环体,当有多条语句时,必须使用复合语句。,.,36,0,真(非0),表达式2=?,语句;,循环体外语句,表达式1;,for(表达式1;表达式2;表达式3)语句;,表达式3;,循环结束!,开始下一次循环,.,37,3、for语句:,for语句很好地体现了正确表达循环结构应该注意的三个问题:循环控制变量的初始化循环的条件循环控制变量的更新,for语句适合的情况已知循环次数,.,38,例6.用for语句计算1+2+.+100,for(i=1;i=100;i+)sum+=i;,.,39,例6.用for语句计算1+2+.+100,.,40,例6.用for语句计算1+2+.+100,inti=0,sum=0;while(i=10)sum+=i;i+;,inti=0,sum=0;doi+;sum+=i;while(i10);,改写成while和do-while语句。,.,41,for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。for语句有以下几种格式:(1)for(;)语句;(2)for(;表达式2;表达式3)语句;(3)for(表达式1;表达式2;)语句;(4)for(i=1,j=n;ij;i+,j-)语句;,注意,.,42,1、for(;)该语句是一个死循环,一般用条件表达式加break语句在循环体内适当位置,一旦条件满足时,用break语句跳出for循环。2、for(;表达式2;表达式3)使用条件是:循环控制变量的初值不是已知常量,而是在前面通过计算得到。例如:i=m-n;for(;ik;i+)语句;,.,43,3、for(表达式1;表达式2;)语句一般当循环控制变量非规则变化,而且循环体中有更新控制变量的语句时使用。例如:for(i=1;i=100;)i=i*2+1;,.,44,4、for(i=1,j=n;ij;i+,j-)语句;在for语句中,表达式1、表达式3都可以有一项或多项,如本例中,表达式1同时为i和j赋初值,表达式3同时改变i和j的值。当有不止一项时,各项之间用逗号“,”分隔。,.,45,循环结构小结,同一个问题,往往既可以用while语句解决,也可以用do-while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。选用的一般原则是:1、如果循环次数在执行循环体之前就已确定,一般用for语句。如果循环次数是由循环体的执行情况确定的,一般用while语句或者do-while语句;2、当循环体至少执行一次时,用do-while语句,反之,如果循环体可能一次也不执行,则选用while语句。,.,循环结构程序设计,循环的概念用while语句和do-while语句实现循环用for语句实现循环循环的嵌套break语句和continue语句几种循环的比较程序举例,.,47,循环的嵌套,一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多重循环。,循环1,循环2,.,48,for()while(),Dofor()while(),while()for(),for()for(),以下四种均为合法的嵌套循环结构,.,49,注意:三种循环语句for、while、do-while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。如下面这种形式是不允许的:do.for(;).while();,.,50,例7.打印乘法“九九表”,.,51,分析:,定义变量i,j,m;i表示行,从1变化到9;j表示列,从1变化到9;m=i*j;表示表中的值;i取初值1;j从1变化到i;计算出每一个m=i*j,输出m,但不换行。输出换行;i做一次变化,如果i9,则,转回步骤6;否则循环结束。,.,52,.,53,#includeintmain()inti=0,j=0;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%4d,i*j);printf(n);return0;,.,循环结构程序设计,循环的概念用while语句和do-while语句实现循环用for语句实现循环循环的嵌套break语句和continue语句几种循环的比较程序举例,.,55,break语句:,用于循环语句和switch语句中,作用是跳出它所在的循环语句或switch语句。格式:while(条件1);if(条件2)break;执行过程:每次执行到if语句时,计算条件2的值;如果条件2的值非零,则跳出循环语句;否则,执行if语句的下一条语句。,.,56,例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(“共经过%f米,第10次反弹%f米n,sum,h);,.,57,Continue语句:,continue语句类似于break语句,但不是退出循环,而是跳过循环体下部未执行的语句,回到循环头部(while处)接着进行下一次循环。格式:while(条件1).;if(条件2)continue;.Continue执行过程:当条件1成立时,进入while的循环体;执行到if语句时,计算条件2的值;如果条件2满足,执行continue语句,结果为:执行转到whi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园数学教学计划
- 2024年度浙江省二级注册建筑师之法律法规经济与施工题库综合试卷A卷附答案
- 新课标2025数学培训
- 职业危害防护培训
- 肢体离断再植术后护理
- 【江苏省期末真题汇编】核心考点:写作 语文八年级下册统编版(含解析)
- 幼儿园小班社会《抱抱》课件
- 在线面试题及答案通标
- 支气管患者的护理
- 四级答案试题卷及答案
- 公司系统主数据管理制度
- 2025年烟台市中考地理试卷真题(含答案及解析)
- 肯德基服务管理制度
- 抖音精准圈层种草
- 高考英语书面表达全国卷评分标准
- 店面运营手册(店面布置与陈列)
- 装修申请书模板
- 四川水电站建设用地地质灾害危险性评估报告
- 建筑电气设计技术规程
- 公开招标招标文件范本
- (完整版)OEE记录表格(设备综合效率)
评论
0/150
提交评论