C+++++面向对象程序设计.ppt_第1页
C+++++面向对象程序设计.ppt_第2页
C+++++面向对象程序设计.ppt_第3页
C+++++面向对象程序设计.ppt_第4页
C+++++面向对象程序设计.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 程序的流程控制 3 1流程控制与程序结构3 2条件分支结构3 3循环结构3 4其他流程控制 3 1流程控制与程序结构 流程控制方式中三种最基本的 顺序控制 条件分支控制和循环控制 每一种控制都有赖于一种特定的程序结构来实现 因此也就有三种基本程序结构 顺序结构 条件分支结构和循环结构 1 顺序结构 顺序结构 通过安排顺序来决定程序流程的程序结构 如图 由于 语句1 在 语句2 的前面因此先执行 语句1 后执行 语句2 2 条件分支结构和循环结构 条件分支结构条件分支控制就是指由特定的条件执行哪个语句的程序结构 条件分支结构可进一步分为单分支结构和多分支结构 在C 中用if语句或switch语句实现 循环结构循环控制就是指由特定的条件决定某个语句重复执行次数的控制方式 循环结构还可以进一步分为先判断后执行结构和先执行后判断结构 在C 中用while语句 for语句和do while语句实现 3 2条件分支结构 3 2 1if语句3 2 2if语句的嵌套3 2 3if多分支结构3 2 4switch语句和switch多分支结构 3 2 1If语句 If语句格式 if 条件 语句1else语句2由格式可以看出 else语句2 部分可以没有 格式含义是 如果条件成立就执行 语句1 否则就执行else后的 语句2 如图1所示 如果if语句中不包含 else语句2 部分 则在条件不成立时什么也不做 如图2 其中语句1和语句2不仅可以是一条语句 而且可以是复合语句 例 例1 输入一个年份判断是否闰年 源程序 includevoidmain void intyear boolIsLeapYear cout Entertheyear 继续 例1 输入一个年份判断是否闰年 cin year IsLeapYear year 4 0此例题结束 3 2 2if语句的嵌套 if语句格式中的 语句1 和 语句2 本身也可以是if语句 从而构成嵌套的if语句 格式 if 条件1 if 条件2 语句1else语句2else 条件3 语句3注意 语句1 2 3 4可以是复合语句 每层的if要与else配对 如果省略某一个else 便要用 括起该层的if语句来确定层次关系 例 例2 比较两个数的大小 源程序 includevoidmain intx y cout x y 继续 例2 比较两个数的大小 if x y if x y couty endl elsecout x y endl elsecout x y endl 此例题结束 3 2 3if多分支结构 格式 if 条件1 语句1elseif 条件2 语句2elseif 条件3 语句3 elseif 条件n 语句n else语句n 1 原理 首先检测条件1 若满足则执行语句1 否则检测条件2 若满足则执行语句2 否则检测条件3 若满足则执行语句3 如果所有的条件都不满足 则执行最后一个else后的语句 语句n 1 若没有该语句则什么也不做 如图 例 例3 输入一个0 100分范围内的一个成绩 显示相应的等级 90 100 优 80 89 良 70 79 中 60 69 及格 60分以下 不及格 源程序 includevoidmain floatscore cout score 继续 例3 输入一个0 100分范围内的一个成绩 显示相应的等级 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 此例题结束 3 2 4switch语句和switch多分支语句 switch语句的格式 switch 整型表达式 case整型表达式1 语句序列1case整型表达式2 语句序列2 case整型表达式n 语句序列n default 语句序列n 1 例 注意事项 例4 输入一个0 6的整数 转换成星期输出 源程序 includevoidmain void intday cin day switch day case0 cout Sunday endl break 继续 例4 输入一个0 6的整数 转换成星期输出 case1 cout Monday endl break case2 cout Tuesday endl break case3 cout Wednesday endl break case4 cout Thursday endl break case5 cout Friday endl 继续 例4 输入一个0 6的整数 转换成星期输出 break case6 cout Saturday endl break default cout DayoutofrangeSunday Saturday endl 此例题结束 关于switch多分支结构 应注意以下几点 1 整型表达式处如果不是整型 则它的值将被自动转换成整型 2 整型常量表达式是指在编译时可确定其值的整型表达式 通常就是一个整型常量 如果表达式的类型不是整型 将被自动转换为整型 4 语句序列可以是空的 即其中一个语句也没有 3 所有语句序列按其排列顺序相互衔接 而case的作用只是标明一个入口以及转入该入口的条件 一旦从某个入口进入一个语句序列 就从该语句序列开始顺序执行 直到以下所有语句序列执行完毕时为止 5 break语句的作用是提前结束switch语句的执行 如果每个语句序列的最后一个语句都是break 则这样的switch多分支结构可以用等效的if多分支结构代替 返回 3 3循环结构 3 3 1for循环3 3 2while循环3 3 3do while循环3 3 4循环结构的特殊控制 break和continue的使用 3 3 1for循环 for语句的格式 for 循环初始化 循环条件 循环参数调整 循环体其中的循环条件应当是一个逻辑表达式 而循环初始化和循环参数调整都应当是具有副作用的表达式 其中循环参数还应当是一个能够影响循环条件的表达式 说明 1 括号内的三项都可以省略 但分号不能省略 2 循环条件如果省略 循环将无终止的进行下去 例 例5 输入一个整数 求出它的所有因子 源程序 includevoidmain void intn k cout Enterapositiveinteger 继续 例5 输入一个整数 求出它的所有因子 cin n cout Number n Factors for k 1 k n k if n k 0 cout k cout endl 此例题结束 3 3 2while循环 while语句的格式 while 循环条件 循环体由于这种结构先判断后执行 因此如果一开始循环条件就不成立的话 起循环体就一次也不执行 While语句更具一般性 一切用for语句实现的循环也可以用while语句实现 3 3 3do while循环 do while语句的一般格式 do循环体while 循环条件 由于这种结构先执行后判断 因此其循环体至少执行一次 例 循环结构的嵌套循环结构与选择结构相互嵌套 例6 源程序 includevoidmain inti 1 a 0 for i 5 i 继续 例6 do i a while i 3 i cout a i endl 此例题结束 例7 求100 200之间不能被3整除的数 源程序 includevoidmain for n 100 n 200 n if n 3 0 printf d n 此例题结束 3 3 4循环结构的特殊控制 break和continue的使用 1 break语句使程序从循环和switch语句内跳出 继续执行逻辑上的下一条语句 break语句不能用在别处 2 continue语句结束本次循环 接着开始判断决定是否继续执行下一次循环 3 4其他流程控制 3 4 1goto语句利用got

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论