已阅读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 n 500中最大的N 并求其和 编写程序实现 分析 本题还是一个累加求和的问题 当累加和sum 500时反复执行循环 否则结束循环 步骤 定义变量 sum n sum和n分别赋初值 n 0 sum 0 当sum 500时反复执行循环 否则结束循环 语句为 While sum 500 n sum n 20 有错误的地方吗吗 21 22 思考 给定一个小于等于216的正整数 要求 求出它是几位数 分别正向打印出每一位数字 逆序打印出各位数字 23 分析 变量 正整数m 小于等于216的正整数 输入 正整数m的值 输出 几位数 正向输出各位数字 逆向输出各位数字 解决问题 变量定义 m为无符号长整型 num 位数 a 某一位数字 求解过程 while m 0 24 求解方法 1 求出它是几位数 用num描述正整数m的位数 初值为 0 当m 0时 开始统计m的位数 while m 0 因为m 0 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 do i sum i while i 10 改写成while和do while语句 41 for语句的三个表达式都是可以省略的 但分号 绝对不能省略 for语句有以下几种格式 1 for 语句 2 for 表达式2 表达式3 语句 3 for 表达式1 表达式2 语句 4 for i 1 j n i j i j 语句 注意 42 1 for 该语句是一个死循环 一般用条件表达式加break语句在循环体内适当位置 一旦条件满足时 用break语句跳出for循环 2 for 表达式2 表达式3 使用条件是 循环控制变量的初值不是已知常量 而是在前面通过计算得到 例如 i m n for i k i 语句 43 3 for 表达式1 表达式2 语句一般当循环控制变量非规则变化 而且循环体中有更新控制变量的语句时使用 例如 for i 1 i 100 i i 2 1 44 4 for i 1 j n i j 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 Do for 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做一次变化 如果i 9 则 转回步骤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满足 执行cont
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全教育课件图文
- 房地产行业市场前景及投资研究报告:日本龙头房企股价表现
- 合规转利润:降本增效全指南(2026)《GBT 39292-2020废钯炭分析用取样和制样方法》
- 坝体混凝土裂缝处理工艺
- 创想三维-市场前景及投资研究报告:全球消费级3d打印龙头全链路生态
- 2026年浙江省人教版初中数学下册第9章同步练习题
- 2026年浙江省高中数学概率统计专题训练题库
- 湖北省2026-2027学年高三(上)联考数学试卷(8月份)(含答案)
- 合规转利润:降本增效全指南(2026)《GBT 39033-2020奥氏体-铁素体型双相不锈钢盘条》
- 合规转利润:降本增效全指南(2026)《GBT 38689-2020耐蚀合金冷轧薄板及带材》从合规成本到利润增长全案:避坑防控+降本增效+商业壁垒构建
- 开启科学探索之旅 课件(内嵌视频) 2025-2026学年人教版初中物理八年级上册
- 2026年及未来5年中国液压机行业发展潜力分析及投资方向研究报告
- 内蒙古生物技术生物工程试卷
- 越野摩托活动方案
- T-ZZB 2684-2022 精密立式加工中心
- GB/T 46409-2025风险管理新兴风险管理指南
- 悬臂式支护结构钢板桩施工方案
- TJSTJXH5-2022高延性混凝土加固技术规程
- 电子商务平台系统设计与实施方案
- 火电厂反渗透水处理课件
- 7.4跨学科实践活动:海洋资源的综合利用与制盐说课稿-2024-2025学年九年级化学科粤版(2024)下册
评论
0/150
提交评论