




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 程序的流程控制 第三章 程序或程序模块的三种基本结构 顺序结构 条件分支结构 循环结构 通过安排语句的排列顺序来决定程序流程 由特定的条件决定执行哪个语句的程序结构 由特定的条件决定某个语句重复执行次数的控制方式 顺序结构 按语句的先后顺序依次执行每一条语句 语句1 语句2 顺序结构示意 X 3 Y 4Z X X YY Z 程序段完成的功能是 交换X和Y的值 例 语句格式 If 条件 语句1else语句2 含义 如果条件成立 执行语句1 否则执行语句2 流程示意 If多分支结构一 条件分支结构 语句格式 If 条件 语句 含义 如果条件成立 执行语句1 否则什么也不做 即跳出if语句的执行 到下一第语句 流程示意 无else子句 If多分支结构二 条件分支结构 例1 输入2个数 找出其中最大的一个并显示出来 includevoidmain inti j cout i j cout j cout i endl elsecout j endl 条件分支结构 例2 输入3个数 找出其中最大的一个并显示出来 includevoidmain inti j k cout i j k cout 3个数中最大的是 if i j i j if i k i j cout i endl 两条无else分支的语句 例3 输入3个数 然后按从大到小的顺序把它们显示出来 includevoidmain inti j k p cout i j k if i j p i i j j p if i k p i i k k p if j k p j j k k p cout endl i j k 例4 P58 例3 5 请对照书本自主学习 If语句的嵌套 语句中出现多个if和多个else时 首先必须进行配对 配对原则 从遇见的第一个else开始 else总与离它最近的if配对 在if语句的else前嵌套另一个if语句容易使所表达的逻辑关系难于理解 应加以避免 必要时把嵌套位置改为else之后 条件分支结构 If多分支结构 If多分支结构是一种通过规范化的if嵌套所构成的条件分支结构 在这种结构中if语句嵌套在else之后 使用格式 if 条件1 语句1elseif 条件2 语句2elseif 条件3 语句3 elseif 条件n 语句nelse语句n 1 条件分支结构 例 输入一个0 100分范围内的一个成绩 显示相应的等级 90 100 优80 89 良70 79 中60 69 及格60分以下 不及格 includevoidmain floatscore cout score if score100 cout 成绩必须在0 100之间 elseif score 60 cout 不及格 endl elseif score 70 cout 及格 endl elseif score 80 cout 中 endl elseif score 90 cout 良 endl elsecout 优 endl switch多分支结构 switch 整型表达式 case整型常量表达式1 语句序列1case整型常量表达式2 语句序列2 case整型常量表达式k 语句序列k default 语句序列k 1 条件分支结构 switch语句格式 switch语句的含义 通过判断整型表达式的值 决定程序的去向 若整型表达式的值与整型常量表达式1的值相同 则依次执行语句序列1开始的各个语句序列 即执行语句序列1 语句序列2 语句序列k 语句序列k 1若整型表达式的值与整型常量表达式2的值相同 则依次执行开始的各个语句序列 即执行语句序列2 语句序列k 语句序列k 1依此类推 若整型表达式的值不等于任何列出的整型常量表达式的值 则执行从default开始的语句序列若没有default语句 则什么也不做 在依次执行语句序列的过程中 如遇见break语句 则立即停止语句序列的执行 跳出switch分支结构因此 若要让分支结构只执行与整型表达式匹配的整型常量表达式后的语句序列 而不往下执行下面的语句序列 应在该语句序列后加一条break语句在每一个整型常量表达式后的语句序列后加break语句的switch分支结构 等同于if多分支结构 break语句在switch分支结构中的应用 例1 输入一个表示星期的数字 0表示星期日 1表示星期二 6表示星期六 显示对应的英文单词 includevoidmain intweekday cout weekday switch weekday case0 cout Sunday endl break case1 cout Monday endl break case2 cout Tuesday endl break case3 cout Wednesday endl break case4 cout Thursday endl break case5 cout Friday endl break case6 cout Saturday endl break weekday的值为0时 显示Sunday break语句阻止了往下执行输出语句 例2 输入一个0 100分范围内的一个成绩 显示相应的等级 90 100 优80 89 良70 79 中60 69 及格60分以下 不及格 用switch多分支结构实现 includevoidmain floatscore cout score switch int score 10 case0 case1 case2 case3 case4 case5 cout 不及格 endl break case6 cout 及格 endl break case7 cout 中 endl break case8 cout 良 endl break case9 case10 cout 优 endl break default cout 成绩必须在0 100分之间 例2说明 int score 10 的值为0 1 2 3 4时分别执行case0 case1 case2 case3 case4后的语句序列是空的 程序从这些入口点进入后 直接往下走 并在执行完case5后的语句并遇见break语句时跳出switch分支 因此当值为0 5时均显示 不及格 case9后的语句为空 从case9进入后 直接往下执行case10后的语句序列 遇见break语句时跳出switch分支 因此 值为9和10时均显示 优 循环结构 for 循环初始化 循环条件 循环参数调整 循环体 for语句 for循环结构示意 for循环含义 首先进行循环初始化 然后判断循环条件 若循环条件成立则执行循环体 若不成立 则结束循环 循环体执行完后 再进行循环参数的调整 然后再进行循环条件判断 若循环条件成立 则继续执行循环体 否则跳出循环 循环体执行完进行循环参数的调整 然后再进行条件判断 条件成立继续执行循环体 否则跳出循环 直到跳出循环 关于for循环语句的几点说明 循环条件是一个逻辑表达式循环初始化和循环参数的调整都应当具有副作用循环体可以是复合语句 也可以是基本语句典型的for循环实例 for inti 0 i 100 i 5 cout i 如果循环条件一开始就不成立 则循环体一次也不执行循环初始化和循环参数的调整可以为空 相当于while循环循环条件为空意味着永真条件循环体为空 可用于延迟一段时间 例 分析以下程序段的执行结果for intI 0 I 20 I cout 分析 第1次 循环初始化I 0 判断条件I 20成立 第一次执行循环体 输出第一个 第2次 进行参数调整 I增1 I的值为1 条件成立 执行第二次循环 输出第二个 第20次 I为19 循环条件成立 执行循环体 输出第20个 号 然后I调整为20 第21次 I为20 循环条件成立 执行循环体 输出第21个 然后I调整为21 跳出循环 I的值为21 循环条件I 20不成立 跳出循环执行结果 输出21个 号 例1 输入10个数 计算并显示它们的合计 includevoidmain doublex s 0 x用于临时保存输入的数据 s用于保存累加结果 称s为累加器cout x s x cout 合计 s 例2 显示并输出如下所示的三角形 第0行 5空 1 第1行 4空 3 第2行 3空 5 第3行 2空 7 第4行 1空 9 第5行 0空 11 由以上得出 若行号为i 则应输出的空格数为5 i 应输出的 数为i i 1程序如下页 includevoidmain for inti 0 i 6 i 循环6次 输出6行cout endl 每次循环换行 换6次 显示6行intj for j 0 j 5 i j cout 每行输出若干空格for j 0 j i i 1 j cout 然后输出若干 cout 合计 s 书本70页例3 11显示输出99乘法表 请看书本自主学习 注 setw 2 功能是为下一个要输出的数据设置输出宽度 该设置只对下一个数据输出有效 例如 cout 1 setw 8 2 3 输出 123setw 8 只对数据2有效 数据2占据8个字符宽度 且数据靠右显示 while语句 while 循环条件 循环体 循环结构 while循环结构示意 while循环含义 先判断循环条件 若条件成立 则执行 循环体执行完后往回判断循环条件 若循环条件成立再执行循环体 否则不执行循环体 跳出循环 循环体执行完后再判断循环条件 循环条件成立继续执行循环体 直到跳出循环 循环条件中的参数的调整则通常在循环体或循环条件中进行 例 分析以下循环语句执行了几次循环I 20 While I 0 cout0循环体是一个基本语句 cout0不成立 不执行循环体 跳出循环 因此循环共执行了20次 do while语句 do循环体while 循环条件 循环结构 do while循环结构示意 do while循环含义 不判断条件直接执行一次循环体 循环体执行完后 再判断循环条件 若条件为真 则再次执行循环体 若条件不成立 则跳出循环 在第二次循环体执行完后 继续先判断循环条件 条件满足 则执行循环体 直到条件不满足 跳出循环 do while循环和while循环的区别 do while循环无论循环条件是否满足 循环体至少执行一次 然后再根据循环条件决定是否继续执行循环体 while循环循环条件不满足则循环体一次也不执行 I 1 While I 5 Cout I I 1 DoCout I While I 5 用do while循环实现 用while循环实现 用两种循环输出相同的内容 输出 12345 用While循环与do while循环等效 I 6 While I 5 Cout I 循环体一次也没执行 因此无任何内容输出 I 6 DoCout I While I 5 输出5 循环体执行了一次 用do while循环实现 用while循环实现 用While循环与do while循环不等效 练习 执行IntI s For I 8 s 0 I 0 I s I for循环8次实现s 8 7 1 且I的值为0循环结束时 s的值为36While I 5 s I while循环4次 把1 4再加到s中 I的值为5时循环结束 s的值为46后 s的值是 答案 46 include includevoidmain doubleA B C do cout A B C while A 0 0 输入3个系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班组级岗前安全培训内容课件
- 法治建设培训会
- 偷吃饼干创意课件
- 心理课件比赛总结
- 2025年3D打印技术的个性化医疗应用
- 交通银行2025石家庄市小语种岗笔试题及答案
- 农业银行2025大兴安岭地区秋招英文面试题库及高分回答
- 邮储银行2025石嘴山市秋招群面模拟题及高分话术
- 中国银行2025张家界市数据分析师笔试题及答案
- 中国银行2025金融科技岗笔试题及答案内蒙古地区
- 心理健康 开学第一课班会课件
- 2025年度在线教育平台股东出资合同
- 慢性鼻窦炎鼻息肉护理查房
- DB3203-T 1043-2023 社区居家医疗护理服务规范
- 2024考研数二真题及答案
- 《业务员基本素质》课件
- (建筑工程管理)主体分部工程验收方案
- 《智能网联汽车智能传感器测试与装调》电子教案
- 2024年江苏省淮安市中考语文试题卷(含答案解析)
- 多功能学术报告厅项目设计方案
- 手卫生知识答题及答案
评论
0/150
提交评论