




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章循环结构程序设计 5 1问题的提出与程序示例 循环结构的特点是 根据给定条件成立与否来决定是否反复执行某个程序段 语言中可以用以下语句来实现循环 用goto语句和if语句构成循环 用while语句 用do while语句 用for语句 5 2while语句 格式 While 表达式 循环体功能 计算表达式的值 当表达式的值为非0 真 时 就反复执行循环体 若表达式的值为假 0 则结束循环 循环体中的语句超过一句时 要使用 流程图 最常见的循环语句是通过计数控制循环体的执行次数 inti 0 sum 0 while i 20 sum sum i i printf sum d sum 另一种是使用用户输入的一个特殊值来结束循环 charc c getchar while c putchar c c getchar putchar n 注意 循环次数的控制要正确 比如循环控制变量或特殊的条件 如果用循环变量控制 要注意循环变量的初值和控制条件 一定要在循环体中改变循环变量 使得循环能趋于结束 否则会出现死循环 P99例5 4 例5 6 建议 即便循环体只有一个简单语句 也用花括号括起来 循环条件中一般是逻辑表达式和关系表达式 也可以是算数表达式 非0为真 0为假 一般地 表达式中应含有变量 循环控制变量 while 3 和while 0 虽然从程序设计的角度上说是不合理的 但是合法的 例5 7 如果程序出现死循环 编译连接时不会显示错误 运行时可以使用Ctrl break结束死循环 例 输出100 999之间所有能被7整除的数 并统计共有几个这样的数 因为要对一批数据中的每一个数判断是否能被7整除 所以要用循环结构 假设使用x作为循环控制变量 则x初始值为100 当x 999时结束 在循环体内 需要判断x是否能被7整除 所以要使用分支结构 如果能整除要输出x 并记录个数 假设用变量n记录能被7整除的数的个数 则n初始值为0 main intx 100 n 0 while x 999 if x 7 0 printf 5d x n x printf nn d n main inti sum i 0 sum 0 while i 100 sum sum i i i 7 printf d sum 把0 100所有7的倍数 或所有能被7整除的数 相加 赋初值 循环条件 循环控制变量发生变化 循环体 例 阅读以下程序 main inti 1 while i 10 printf d d d n i i i i i 运行结果 1 1 12 2 43 3 94 4 165 5 256 6 367 7 498 8 649 9 8110 10 100 如果把i 和printf语句的次序交换 会出现什么结果 怎么样修改可以使程序结果仍然如右图所示 例 程序的执行结果是什么 While循环是先判断表达式 后执行循环体循环体有可能一次也不执行 main intx 10 while x 0 x x 1 printf d x 5 3do while语句 格式 do循环体while 表达式 功能 首先执行循环体 然后判断表达式的值 若非0 真 就反复执行循环体 直到表达式的值为0 结束循环 流程图 注意 do while与while的区别是 do while总是要先进行一遍循环 再进行表达式的判断 因此循环体中的语句至少要执行一次 所以有些程序不能使用do while语句完成 有些能使用两种语句 但在循环控制上有所不同 比较例5 2和例5 9 例5 3和例5 10为了避免编译系统把do while语句的while当作while语句的开始 do while循环体中的语句即使只有一句 也需要采用分程序结构 用 括起来 例用do while编程求s 1 2 3 100 main ints 0 k 1 do s s k k while k 100 printf s d n s 赋初值 循环条件 循环控制变量发生变化 循环体 5 4for语句 格式 For 表达式1 表达式2 表达式3 循环体功能计算表达式1计算表达式2 判断表达式2是否为真 若为真 执行循环体中的语句 若为假 循环结束 跳到for语句下面的一个语句计算表达式3跳转到第 步执行 注意 for语句完全可以用while代替 但for直观 简单 方便 for用while代替的流程表达式1 while 表达式2 语句 表达式3 可以省略表达式1 但须保留分号 这时在for之前就得赋值给循环变量 例 任意输入两个整数a b 求 main inti j a b sum 0 printf pleaseinputtwonumber n scanf a d b d 表达式2一般不可省略 否则为无限循环例 for i 1 i sum sum i 条件永真 永不为0 相当于 while 1 sum sum i i 表达式1 表达式3可以是逗号表达式 以使循环变量值在修改时可以对其它变量赋值 例 for sum 0 i 1 i 100 i i 等价于sum 0 for i 1 i 100 i i 2 表达式3亦可省略 但在循环体中须有语句修改循环变量 以使表达式2在某一时刻为0而正常结束循环 三个表达式均省略即for 语句则相当于while 1 语句 表达式2可以是关系表达式 也可以是数值表达式或字符表达式 只要值 0即执行循环体 例 For i 0 c getchar n i c 特别 在for语句括号后面如果加分号 表示循环语句为空语句 区别 For i 1 i 20 i printf 3d i For i 1 i 20 i printf 3d i 5 5多重循环 多重循环也叫作循环的嵌套 就是在一个循环体内包含了另一个循环体 在多重循环中 外层循环与内层循环的循环变量名不能相同 否则会引起循环次数的混乱 例 P108例5 15 例5 16 5 6break语句在循环中的应用 break语句在循环体中的功能是 终止包含break语句的最内层循环 从包含它的最内层循环中退出 执行包含它的循环语句的下一条语句 5 7continue语句 continue语句的功能是 使包含它的最内层循环立即开始下一轮循环 即本次循环体中continue后面的部分不执行 在for语句中 终止本次循环运行 但是要计算表达式3的值 break与continue的区别 在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塔城事业单位笔试真题2025
- 2025年山西公务员考试试题真题
- Unit 9 Let's smell the flowers.教学设计-2023-2024学年小学英语一级下剑桥少儿英语
- 2025租赁合同担保条款
- 云南省考真题2025
- 青海事业单位笔试真题2025
- 金华事业单位笔试真题2025
- 2025境外雇佣合同范本
- 化肥厂安全例会记录细则
- 2025智能穿戴设备ID设计招标合同
- QGDW11703-2017电力视频监控设备技术规范
- 手抄报设计花边课件
- 无人机操控技术 教案 3.2无人机模拟器基本设置
- 16949体系培训计划
- T/CAZG 003-2019亚洲象饲养管理技术规范
- 火锅店股东协议合同协议
- 高中英语3500词词汇
- 四川遂宁历年中考作文题与审题指导(2004-2024)
- 电梯曳引钢丝绳维护保养制度
- 老年人防烫伤安全教育
- 2024年福州地铁集团有限公司招聘笔试真题
评论
0/150
提交评论