




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章循环结构程序设计
整理课件引例:编程计算1*2*3*4*5可以这样实现:
intproduct;product=1*2*3*4*5;如果问题变为:求1*2*3*…*10000?该问题无法用一个赋值语句实现!?2整理课件主要内容学习三种结构的程序设计方法顺序结构程序设计选择结构程序设计循环结构程序设计掌握每一种语句的格式、功能、执行过程和执行结果,并学习如何将这些语句组织成程序学习逻辑问题的解题思路,及递推、迭代的方法3整理课件循环结构程序设计循环的概念用while语句和do-while语句实现循环用for语句实现循环循环的嵌套break语句和continue语句几种循环的比较程序举例整理课件一、循环概述5整理课件在很多实际问题中会遇到有规律性的重复运算,因此在程序中就需要将某些语句重复执行。一组被重复执行的语句称为循环体;每重复一次,都必须作出是继续还是停止循环的决定,这个决定所依据的条件称为循环条件;循环:在给定条件成立时,反复执行某程序段,直到条件不成立为止。
6整理课件循环结构入口noPAyes出口循环条件循环体7整理课件循环结构需要解决的两个问题2.控制循环结构的结构描述条件表示描述方法逻辑表达式关系表达式1.控制循环结构执行的条件表示while语句do-while语句实现循环结构的语句可使用c中的任意表达式for语句8整理课件1、while语句:while〔表达式〕语句;计算表达式的值;当表达式的值为非0时,反复执行while中的语句;当表达式的值为0时,while循环结束。功能:while语句用来实现“当型〞循环。执行流程:9整理课件while语句执行流程:0非0表达式=?循环体外语句循环体语句循环入口循环结束!开始下一次循环特点:先判断,后执行;假设条件不成立,那么有可能一次也不执行。适合的情况:知道控制循环的条件为某个逻辑表达式的值,而且在循环中该表达式的值会被改变。10整理课件例1.编程计算1+2+3+…+10000方案一、sum
=sum+i;i=i+1;11整理课件方案二、12整理课件方案三、13整理课件2、do-while语句:do{语句;}while〔表达式〕;执行语句;计算表达式的值;当表达式的值为非0时,再次执行do中的语句;当表达式的值为0时,do-while循环结束。执行流程:14整理课件真(非0)表达式=?语句循环体外语句0do-while语句执行流程:循环结束!开始下一次循环特点:先执行,后判断;循环至少执行一次语句。15整理课件例2.用do-while语句实现1+2+3+…+1000016整理课件例2.用do-while语句实现1+2+3+…+1000017整理课件例2.用do-while语句实现1+2+3+…+10000改成while语句注意两个语句的顺序!18整理课件例3.求满足1+2+3+…+n<500
中最大的N,并求其和,编写程序实现。分析此题还是一个累加求和的问题,当累加和sum500时反复执行循环,否那么结束循环步骤定义变量:sum,n;sum和n分别赋初值;n=0;sum=0;当sum<500时反复执行循环,否那么结束循环。语句为:While(sum<500){++n;sum+=n;}19整理课件有错误的地方吗吗??20整理课件21整理课件思考:给定一个小于等于216的正整数,要求:求出它是几位数;分别正向打印出每一位数字;逆序打印出各位数字;22整理课件分析:变量:正整数m—小于等于216的正整数;输入:正整数m的值;输出:几位数、正向输出各位数字、逆向输出各位数字;解决问题:变量定义:m为无符号长整型;num:位数;a:某一位数字;求解过程:while(m!=0){……}23整理课件求解方法:〔1〕求出它是几位数;用num描述正整数m的位数,初值为0当m>0时,开始统计m的位数while(m>0)因为m>0,m至少有一位,num++;然后把m的个位去除;m=m/10;再判断m是否仍然>0;当循环结束时,即:m等于0;结果:num的值即为m的位数;24整理课件有问题吗?25整理课件26整理课件求解方法:〔2〕分别正向打印出每一位数字;首先应求出m的位数num;然后从最高位开始输出;最高位为:m/10num-1;除了最高位以外,其他的局部为:m%10num-1;循环直到最后一位输出结束。27整理课件求解方法:〔3〕逆序打印出各位数字;从最低位开始输出;最低位为:m/10;除去最低位,其它的局部为:m%10;循环,直到最高位输出结束。28整理课件29整理课件〔1〕:求位数〔2〕:从高位到低位求每一位。〔3〕:从低位到高位求每一位。30整理课件31整理课件〔2〕:从高位到低位求每一位。32整理课件〔3〕:从低位到高位求每一位。33整理课件循环结构程序设计循环的概念用while语句和do-while语句实现循环用for语句实现循环循环的嵌套break语句和continue语句几种循环的比较程序举例整理课件3、for语句:for(表达式1;表达式2;表达式3)
语句;表达式1:一般为赋值表达式,给控制变量赋初值;表达式2:关系表达式或逻辑表达式,循环控制条件;表达式3:一般为赋值表达式,给控制变量增量/减量;语句:循环体,当有多条语句时,必须使用复合语句。35整理课件0真(非0)表达式2=?语句;循环体外语句表达式1;for(表达式1;表达式2;表达式3)语句;表达式3;循环结束!开始下一次循环36整理课件3、for语句:for语句很好地表达了正确表达循环结构应该注意的三个问题:循环控制变量的初始化循环的条件循环控制变量的更新for语句适合的情况——循环次数37整理课件例6.用for语句计算1+2+...+100i=1i<=100sum+=ii++假真for(i=1;i<=100;i++)sum+=i;38整理课件例6.用for语句计算1+2+...+10039整理课件例6.用for语句计算1+2+...+100inti=0,sum=0;while(i<=10){ sum+=i; i++;}
inti=0,sum=0;
do{
i++; sum+=i;
}while(i<10);改写成while和do-while语句。40整理课件for语句的三个表达式都是可以省略的,但分号“;〞绝对不能省略。for语句有以下几种格式:〔1〕for(;;)语句;〔2〕for(;表达式2;表达式3)语句;〔3〕for〔表达式1;表达式2;)语句;〔4〕for(i=1,j=n;i<j;i++,j--)语句;注意41整理课件1、for(;;)该语句是一个死循环,一般用条件表达式加break语句在循环体内适当位置,一旦条件满足时,用break语句跳出for循环。2、for(;表达式2;表达式3)
使用条件是:循环控制变量的初值不是常量,而是在前面通过计算得到。例如:
i=m-n;
⋯⋯
for(;i<k;i++)语句;42整理课件3、for〔表达式1;表达式2;)语句
一般当循环控制变量非规那么变化,而且循环体中有更新控制变量的语句时使用。例如:
for(i=1;i<=100;)
{⋯⋯
i=i*2+1;
⋯⋯ }43整理课件4、for(i=1,j=n;i<j;i++,j--)语句;
在for语句中,表达式1、表达式3都可以有一项或多项,如本例中,表达式1同时为i和j赋初值,表达式3同时改变i和j的值。当有不止一项时,各项之间用逗号“,〞分隔。44整理课件循环结构小结同一个问题,往往既可以用while语句解决,也可以用do-while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。选用的一般原那么是:1、如果循环次数在执行循环体之前就已确定,一般用for语句。如果循环次数是由循环体的执行情况确定的,一般用while语句或者do-while语句;2、当循环体至少执行一次时,用do-while语句,反之,如果循环体可能一次也不执行,那么选用while语句。45整理课件循环结构程序设计循环的概念用while语句和do-while语句实现循环用for语句实现循环循环的嵌套break语句和continue语句几种循环的比较程序举例整理课件循环的嵌套一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多重循环。循环1循环247整理课件for(){…
while()
{…}
…
}Do{
…
for()
{…}
…
}while()while(){
…
for(){…}
…}for(){
…
for(){…}
}以下四种均为合法的嵌套循环结构48整理课件注意:三种循环语句for、while、do-while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。如下面这种形式是不允许的:
do
{
......for(;;)
{
......
}while();}49整理课件98765432198765432181726354453627189645648403224168494235282114736302418126252015105161284963421例7.打印乘法“九九表〞50整理课件分析:定义变量i,j,m;i表示行,从1变化到9;j表示列,从1变化到9;m=i*j;表示表中的值;i取初值1;j从1变化到i;计算出每一个m=i*j,输出m,但不换行。输出换行;i做一次变化,如果i≤9,那么,转回步骤6;否那么循环结束。51整理课件52整理课件#include<stdio.h>intmain(){ inti=0,j=0; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%4d",i*j); } printf("\n"); } return0;}53整理课件循环结构程序设计循环的概念用while语句和do-while语句实现循环用for语句实现循环循环的嵌套break语句和continue语句几种循环的比较程序举例整理课件break语句:用于循环语句和switch语句中,作用是跳出它所在的循环语句或switch语句。格式:while(条件1){…;if(条件2)break;……}执行过程:每次执行到if语句时,计算条件2的值;如果条件2的值非零,那么跳出循环语句;否那么,执行if语句的下一条语句。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;
}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实习经历对大学毕业生初次就业质量的影响:基于多维度视角的剖析
- 2025年一建《机电工程管理与实务》考试真题剖析及备考策略解析试卷
- 2025年医保知识考试题库及答案:医保患者权益保障法律法规解读与应用试题
- 医院信息科数据管理优化方案计划
- 2025年医保政策调整与医疗信息化建设考试题库及答案
- 离婚协议房产分隔协议书
- 2025年医保知识考试题库及答案(医保支付方式改革)备考资料汇编
- 软件购买合同解除协议书
- 老宅基地转让合同范本
- 车位委托转让管理协议书
- 公司合伙人管理制度
- 婚介所个人资料登记表格
- 整形医院双眼皮培训课件
- Meta分析很全的课件
- 电商仓库流程及诊断
- 静脉治疗课件
- NPUAP压疮指南更新的解读
- 2020年华为采购物料环保规范?V4
- IPQC制程检验流程图
- 进料检验报告单
- 2022年江苏省南京市中考历史试题(含答案)
评论
0/150
提交评论