已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第3章循环结构程序设计 邹琪qzou 计算机与信息技术学院工程系九教北517 2 2 教学目标 学习三种结构的程序设计方法顺序结构程序设计选择结构程序设计循环结构程序设计掌握每一种语句的格式 功能 执行过程和执行结果 并学习如何将这些语句组织成程序学习递推 迭代问题的解题思路及方法 3 循环概述三种循环结构语句while语句do while语句for语句循环的嵌套break和continue语句循环结构的应用 主要内容 4 引例 编程计算1 2 3 4 5 可以这样实现 intproduct product 1 2 3 4 5 如果问题变为 求1 2 3 10000 该问题无法用一个赋值语句实现 典型的循环结构程序 5 一 循环概述 6 循环结构 在很多实际问题中会遇到有规律性的重复运算 因此在程序中就需要将某些语句重复执行 一组被重复执行的语句称为循环体 每重复一次 都必须作出是继续还是停止循环的决定 这个决定所依据的条件称为循环条件 循环 在给定条件成立时 反复执行某程序段 直到条件不成立为止 7 循环结构 入口 no P A yes 出口 循环条件 循环体 8 循环结构需要解决的两个问题 2 控制循环结构的结构描述 条件表示描述方法 逻辑表达式 关系表达式 1 控制循环结构执行的条件表示 while语句 do while语句 实现循环结构的语句 可使用c中的任意表达式 for语句 9 while语句 10 while语句 while 表达式 语句 计算表达式的值 当表达式的值为非0时 反复执行while中的语句 当表达式的值为0时 while循环结束 功能 while语句用来实现 当型 循环 执行流程 11 while语句执行流程 0 非0 表达式 循环体外语句 循环体语句 循环入口 循环结束 开始下一次循环 特点 先判断 后执行 若条件不成立 则有可能一次也不执行 适合的情况 知道控制循环的条件为某个逻辑表达式的值 而且在循环中该表达式的值会被改变 12 例1 编程计算1 2 3 10000 includevoidmain inti 1 sum 0 while i 10000 循环结构 sum i i printf sum d n sum sum sum i i i 1 13 include definen10000voidmain inti 1 sum 0 while i n sum i i printf sum d n sum 例1 编程计算1 2 3 10000 14 includevoidmain inti 1 sum 0 n printf 请输入n的值 n scanf d printf sum d n sum do while语句 15 16 do while语句 do 语句 while 表达式 执行语句 计算表达式的值 当表达式的值为非0时 再次执行do中的语句 当表达式的值为0时 do while循环结束 执行流程 17 真 非0 表达式 语句 循环体外语句 0 do while语句执行流程 循环结束 开始下一次循环 特点 先执行 后判断 循环至少执行一次语句 18 includevoidmain inti 0 sum 0 do i sum i while i 10000 printf sum d n sum inti 1 sum 0 while i 10000 sum i i 例2 用do while语句实现1 2 3 10000 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 includevoidmain intn 0 sum 0 while sum 500 n sum n printf n d sum d n n 1 sum n Why 为什么不是n sum 结果 n 31 sum 496 程序 1 2 3 n 500 21 例4 输入两个正整数m n 求其最大公约数和最小公倍数 分析 最大公约数 辗转相除法 两个整数m和n m n 设r表示m除以n的余数 即 r m n 如果 r 0则n中的值为m和n的最大公约数 否则执行 m n n r 转回 如果 处 继续执行 最小公倍数 m和n的乘积除以最大公约数 22 includevoidmain intm n GCD LCM r p scanf d d while r 0 23 例5 用户输入多个字符 要求按以下规律进行翻译 将用户输入的每一个英文字母变为它后面的字母输出 如 将A变成B B变成C Z变成A 用户输入的非字母的字符原样输出 作为用户输入结束的标志 分析 读入第一个字符 当其不是 时 进入循环 判断其是否为字母 如果是则将其翻译成该字母的后继 如果读入的字符不是字母 原样输出 再读入下一个字符 返回2步 当输入字符为 时结束 24 includevoidmain charch scanf c 25 思考 给定一个小于等于230的正整数 要求 求出它是几位数 分别正向打印出每一位数字 逆序打印出各位数字 26 分析 变量 正整数m 小于等于230的正整数 输入 正整数m的值 输出 几位数 正向输出各位数字 逆向输出各位数字 解决问题 变量定义 m为无符号长整型 num 位数 a 某一位数字 求解过程 while m 0 27 求解方法 求出它是几位数 用num描述正整数m的位数 初值为 0 当m 0时 开始统计m的位数 while m 0 因为m 0 m至少有一位 num 然后把m的个位去除 m m 10 再判断m是否仍然 0 回到循环头部 当循环结束时 即 m 0 结果 num的值即为m的位数 28 求解方法 分别正向打印出每一位数字 首先应求出m的位数num 然后从最高位开始输出 最高位为 m 10num 1 除了最高位以外 其他的部分为 m 10num 1 循环直到最后一位输出结束 29 求解方法 3 逆序打印出各位数字 从最低位开始输出 最低位为 m 10 除去最低位 其它的部分为 m 10 循环 直到最高位输出结束 for语句 30 31 for语句 for 表达式1 表达式2 表达式3 语句 表达式1 一般为赋值表达式 给控制变量赋初值 表达式2 关系表达式或逻辑表达式 循环控制条件 表达式3 一般为赋值表达式 给控制变量增量 减量 语句 循环体 当有多条语句时 必须使用复合语句 32 0 真 非0 表达式2 语句 循环体外语句 表达式1 for语句执行流程 for 表达式1 表达式2 表达式3 语句 表达式3 循环结束 开始下一次循环 33 for语句 首先计算表达式1的值 给循环变量赋初值 再测试表达式2的值 若其值非0 则执行循环体语句 然后计算表达式3的值 修改循环变量的值 回到表达式2处 直到表达式2的值为0 假 则退出循环 执行流程 for 表达式1 表达式2 表达式3 语句 34 当表达式2成立时 执行循环体 当表达式2不成立时 退出循环 对循环变量赋初值 修改循环变量的值 返回循环头部 for语句 35 for语句很好地体现了正确表达循环结构应该注意的三个问题 循环控制变量的初始化循环的条件循环控制变量的更新 for语句适合的情况 已知循环次数 36 例6 用for语句计算1 2 10 includevoidmain inti sum 0 for i 1 i 10 i sum i printf d sum 37 例6与用while do while实现差异 includevoidmain inti sum 0 for i 1 i 10 i sum i printf d sum inti 1 sum 0 while i 10 sum i i inti 0 sum 0 do i sum i while i 10 38 for语句的三个表达式都是可以省略的 但分号 绝对不能省略 for语句有以下几种格式 1 for 语句 2 for 表达式2 表达式3 语句 3 for 表达式1 表达式2 语句 4 for i 1 j n i j i j 语句 注意 39 for 该语句是一个死循环 一般用条件表达式加break语句在循环体内适当位置 一旦条件满足时 用break语句跳出for循环 for 表达式2 表达式3 使用条件是 循环控制变量的初值不是已知常量 而是在前面通过计算得到 例如 i m n for i k i 语句 40 for 表达式1 表达式2 语句一般当循环控制变量非规则变化 而且循环体中有更新控制变量的语句时使用 例如 for i 1 i 100 i i 2 1 for i 1 j n i j i j 语句 在for语句中 表达式1 表达式3都可以有一项或多项 如本例中 表达式1同时为i和j赋初值 表达式3同时改变i和j的值 当有不止一项时 各项之间用逗号 分隔 41 循环的嵌套 一个循环体内又包含另一个完整的循环结构 称为循环的嵌套 内嵌的循环中还可以嵌套循环 这就是多重循环 循环1 循环2 42 for while Do for while while for for for 以下四种均为合法的嵌套循环结构 43 三种循环语句for while do while可以互相嵌套自由组合 但要注意的是 各循环必须完整 相互之间绝不允许交叉 如下面这种形式是不允许的 do for while 注意 44 例7 打印乘法 九九表 45 分析 定义变量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 否则循环结束 46 includevoidmain inti j m printf for i 1 i 9 i printf 4d i printf n for i 1 i 9 i printf d i for j 1 j i j m i j printf 4d m printf n 程序 输出第一行 内循环 外循环 47 主程序开始 定义三个整型变量 123456789 1 1 2 24 3 369 4 481216 5 510152025 6 61218243036 for j 1 j i j m i j printf 4d m 7 7142128354249 8 816243240485664 9 91827364554637281 输出一个 号 不换行 i j printf n 计算出每一列的值并输出之 执行结果 voidmain inti j m printf for j 1 j 9 j printf 4d j printf n for i 1 i 9 i printf d i 不换行连续地输出1 2 9 换行输出 输出每一行的行号 开始循环输出每一行 外循环 48 循环结构小结 同一个问题 往往既可以用while语句解决 也可以用do while或者for语句来解决 但在实际应用中 应根据具体情况来选用不同的循环语句 选用的一般原则是 如果循环次数在执行循环体之前就已确定 一般用for语句 如果循环次数是由循环体的执行情况确定的 一般用while语句或者do while语句 当循环体至少执行一次时 用do while语句 反之 如果循环体可能一次也不执行 则选用while语句 49 break语句 用于循环语句和switch语句中 作用是跳出它所在的循环语句或switch语句 格式 while 条件1 if 条件2 break 执行过程 每次执行到if语句时 计算条件2的值 如果条件2的值非零 则跳出循环语句 否则 执行if语句的下一条语句 50 例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 51 Continue语句 continue语句类似于break语句 但不是退出循环 而是跳过循环体下部未执行的语句 回到循环头部 while处 接着进行下一次循环 格式 while 条件1 if 条件2 continue Continue执行过程 当条件1成立时 进入while的循环体 执行到if语句时 计算条件2的值 如果条件2满足 执行continue语句 结果为 执行转到while处开始下一次循环 否则 执行if的下一条语句 52 continue语句 continue语句的作用是结束本次循环 直接进行下一轮循环的判断 该语句只能用在for while do while语句中 常与if语句配合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师资格教育公平案例策略题库及答案
- 2025年事件营销经理招聘面试参考题库及答案
- 2025年航空公司地勤专员招聘面试题库及参考答案
- 2025年法务主管招聘面试参考题库及答案
- 2025年工艺设计师招聘面试参考题库及答案
- 护士入职考试考试题库及答案
- 2025年保险顾问招聘面试参考题库及答案
- 2025年数据治理专家招聘面试题库及参考答案
- 思政教师答辩题库及答案
- 广东招聘教师题库及答案
- 消防车乐高课件
- 供水漏控管理制度
- 2025欧盟REACH法规高关注物质清单
- 阴道上皮内瘤变诊治中国专家共识(2024年版)解读
- (高清版)DB34∕T 4991-2025 岩沥青+SBS复合改性沥青混合料设计与施工技术规范
- 神经外科临床诊疗指南及操作规范
- 《住院患者身体约束的护理》团体标准解读课件
- 《摄影基础教程》课件
- 施工现场安全材料管理试题及答案
- 2025年4月26日青岛市市属事业单位遴选笔试真题及答案解析
- 七下传统文化试卷及答案
评论
0/150
提交评论