程序设计全套3程序流程控制.ppt_第1页
程序设计全套3程序流程控制.ppt_第2页
程序设计全套3程序流程控制.ppt_第3页
程序设计全套3程序流程控制.ppt_第4页
程序设计全套3程序流程控制.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第3章程序流程控制 内容简介 虽然C 是完全的面向对象语言 但在局部的语句块内 仍然要使用结构化程序设计的方法 用控制结构来控制程序的执行流程 结构化程序设计有三种基本控制结构 分别是 顺序结构 选择结构和循环结构 本章将对这三种基本结构的概念及相应的控制语句进行详细介绍 目录 3 1顺序结构 3 2选择结构 3 3循环结构 3 1顺序结构 顺序结构的执行特征为 按照语句出现的先后顺序 依次执行 处理实际问题时 往往需要用户输入数据 然后进行相应的处理 最后由程序输出结果 控制台应用程序的输入与输出Windows应用程序的输入与输出 3 1 1赋值语句 赋值语句是程序设计中最基本的语句 由于C 的赋值表达式有多种形式 因此赋值语句也表现出多样性 常用的赋值语句有单赋值语句 复合赋值语句 连续赋值语句 不管是哪种赋值语句 基本格式都是以下两种 格式1 变量名 表达式 功能 将表达式的值赋值给变量 格式2 对象名 属性名 表达式 功能 将表达式的值赋值给对象的属性 3 1 1赋值语句 单赋值语句2 复合赋值语句3 连续赋值语句 inti 3 intj i 1 label1 Text 姓名 intx 55 x 50 label1 Text strings1 s2 s3 s1 s2 s3 连续赋值 textBox1 Text textBox2 Text 3 1 2输入与输出 输入与输出是应用程序进行数据处理过程中的基本功能 按照应用程序的类型 大致分为控制台 Windows Web三种应用程序的输入与输出 1控制台应用程序的输入与输出2Windows应用程序的输入与输出 1控制台应用程序的输入与输出 控制台输入输出 也称为标准输入输出 使用的是标准输入输出设备 即键盘和显示器 控制台应用程序的输入与输出 主要通过Console类的静态方法实现 1 输入方法控制台应用程序的数据输入 可以通过Console类的静态方法Read与ReadLine实现 2 输出方法控制台应用程序的数据输出 可以通过Console类的静态方法Write与WriteLine实现 两个方法都没有返回值 1控制台应用程序的输入与输出 1 输入方法 Console类的静态方法Read与ReadLine 1 Read方法 格式 Console Read 说明 Read方法只能接受一个字符 返回值是int类型 如果输入的字符不是数字 将返回该字符对应的ASCII编码 示例 inti Console Read charc char Console Read 1控制台应用程序的输入与输出 1 输入方法 Console类的静态方法Read与ReadLine 2 ReadLine方法 格式 Console ReadLine 说明 ReadLine方法接受一行字符 即一个字符串 回车代表输入的结束 返回值是string类型 示例 strings Console ReadLine 2 输出方法 Console类的静态方法Write与WriteLine 1 Write方法 格式1 Console Write X 功能 将参数X指定的数据写入标准输出流 一般指显示器 说明 参数X是任意类型的数据 示例 Console Write 请输入一个整数 intj int Parse Console ReadLine Console Write 输入的整数为 j 1控制台应用程序的输入与输出 2 输出方法 Console类的静态方法Write与WriteLine 1 Write方法 格式2 Console Write 格式字符串 表达式列表 功能 按照格式字符串的约定 输出提示字符和表达式的值 说明 格式字符串是由双引号括起来的字符串 里面可以包含 括起来的数字 数字从0开始 依次对应表达式列表中的表达式 示例 inti 5 strings five Console Write i 0 s 1 i s 输出结果为 i 5 s five 1控制台应用程序的输入与输出 2 输出方法 Console类的静态方法Write与WriteLine 2 WriteLine方法 格式1 Console WriteLine X 功能 将指定的X写入标准输出流 并以一个换行符结尾 格式2 Console WriteLine 格式字符串 表达式列表 功能 按照格式字符串的约定 输出提示字符和表达式的值 并以一个换行符结尾 说明 WriteLine方法的功能与Write方法基本相同 唯一的区别是WriteLine方法调用后要换行 例 编写一个控制台应用程序 实现分别输入姓名和年龄后再一起输出 的年龄是 岁 的功能 1控制台应用程序的输入与输出 Windows应用程序的输入与输出 可以通过多种控件实现 如之前介绍过的TextBox Label LinkLabel以及下面要介绍的MessageBox 消息框 等 其中 使用频率最高的是TextBox和Label 从操作程序的用户的角度看 TextBox和Label控件的主要区别在于 Label控件是一个只能显示数据的控件 而TextBox控件既可以让用户在其中输入数据 也可以显示输出数据 例 编写一个Windows应用程序 实现分别输入姓名和年龄后再一起输出 的年龄是 岁 的功能 3 2 2Windows应用程序的输入与输出 消息框 消息框是一个预定义对话框 用于向用户显示与应用程序相关的信息 只有在用户响应该消息框后 程序才能继续运行下去 显示消息框要显示消息框 必须调用MessageBox类的静态方法Show 格式 MessageBox Show 参数列表 消息框可以显示标题 消息 按钮和图标四部分内容 也可以只显示其中的一项或几项 1 显示消息框下面给出几种常用的Show方法 消息框 2 消息框的按钮消息框中 除了默认的 确定 按钮 还可以放置其他按钮 这些按钮可以收集用户对消息框中问题的响应 一个消息框中最多可显示3个按钮 可以根据程序要求从MessageBoxButtons枚举的成员中选择 消息框 3 消息框的图标默认情况下 消息框不显示图标 MessageBoxIcon枚举用于指定消息框中显示什么图标 消息框 4 消息框的返回值单击消息框中的某一按钮时 Show方法将返回一个DialogResult枚举值来指示对话框的返回值 例 实现通过消息框输出 的年龄是 岁 的功能 消息框 3 2选择结构 选择结构也称为分支结构 其特点是 根据给定的条件是否成立 决定从各个可能的分支中执行某一分支的相应操作 选择结构一般分为单分支 双分支 多分支三种 if语句 用于判断特定的条件能否满足 一般用于单分支和双分支选择 也可以用于多分支选择 switch语句常用于多分支选择 3 2 1if语句 单分支的if语句是最简单的 它根据条件表达式的值决定是否要执行其后的语句块 格式如下 格式 if 条件表达式 语句块 说明 条件表达式可以是关系表达式 逻辑表达式或布尔常量值 true和false 语句块 可以是单语句 也可以是多语句 如果是单语句 大括号可以省略 如果是多语句 分号可以省略 例 输入一个整数 求绝对值 程序分析 如果是负数 取反 否则 绝对值是这个数本身 双分支的if语句是最常用的 它根据条件表达式的值进行判断 选择其中一个分支执行 格式如下 格式 if 条件表达式 语句块1 else 语句块2 例 根据输入的学生成绩Score的值 显示其是否及格 3 2 1if语句 if语句也可以用于多分支的选择结构 用来对三种或三种以上的情况进行判断 if elseif else语句实际上就是if语句的嵌套 一般格式如下 格式 if 条件表达式1 语句块1 elseif 条件表达式2 语句块2 其他分支elseif 条件表达式n 语句块n else 语句块n 1 3 2 1if语句 3 2 2switch语句 使用嵌套的if语句虽然可以实现多分支的选择结构 但if语句每次判断只能有两个分支 当判断的条件较多时 程序的可读性将大大降低 switch语句 也称为开关语句 专门用于多分支的选择结构 其语法更简单 能处理复杂的条件判断 switch语句有一个控制表达式 其分支语句根据控制表达式的值的不同 执行不同的语句块 switch语句的格式如下 格式 switch 控制表达式 case常量表达式1 语句块1 break case常量表达式2 语句块2 break 其他分支case常量表达式n 语句块n break default 语句块n 1 break 3 2 2switch语句 说明 控制表达式 可以是sbyte byte short ushort int uint long ulong bool char string或枚举类型 使用较多的是int和string类型 switch语句可以包括任意数目的case块 但是任何两个case语句都不能具有相同的值 语句块 可以是单语句 也可以是多语句 break语句用于中断选择分支的语句运行 此处用于跳出switch语句 在switch语句中 也可使用goto语句实现语句转移 但应尽量避免使用这种方法 3 2 2switch语句 3 2 2switch语句 说明 C 不支持从一个case标签显式贯穿到另一个case标签 因此在每一个case块 包括default块 的后面都必须有一个跳转语句 如break 但有一个例外 这个例外是当case块中没有代码时 空case标签可以贯穿到另一个case标签 这种情况下多个case语句可以使用同一个语句块进行处理 default标签用来处理不匹配case语句的值 定义default标签可以增强处理相应的异常 例 改写输入的学生成绩Score的值 显示其是否及格 3 3循环语句 C 提供了多种形式的循环语句 包括for语句 foreach语句 while语句和do while语句 3 3 1for语句循环次数可知 格式 for 表达式1 表达式2 表达式3 循环体 1 2 3 4 4 5 循环体以外的语句 6 3 3 1for语句 1 2 3 100 inti sum 0 for i 1 i 100 i sum i inti 1 sum 0 sum i break if i 100 i i 1 3 3 1for语句 例 编写一个Windows应用程序 计算a aa aaa aaaa aa a n个 的值 其中a和n为1 9之间的整数 inta n num sum num sum 0 a int Parse txtA Text n int Parse txtN Text for inti 1 i n i num num 10 a sum num txtSum Text sum ToString 3 3 2while语句 while语句一般用于循环次数未知的循环结构 也可以用于循环次数可知的循环结构 格式 while 条件表达式 循环体 注意 1 循环体可能执行0次 2 while true 永真循环 要使用break语句 3 3 2while语句 例 编写一个Windows应用程序 将所输入整数的各个位上的数字按相反顺序输出 86397 79368 a a 0 b a 10 7str str b ToString a a 10 8639 b a 10 9str str b ToString a a 10 863 3 3 3do while语句 do while语句与while语句非常相似 而do while语句的测试条件在每一次循环结束时进行判断 因为先执行后判断 所以至少执行一次 格式 do 循环体 while 条件表达式 注意 最后的分号不能省略 否则会提示错误 continue与break intn 0 m 0 for i 1 i 10 i if i 2 0 continue n for i 1 i 10 i if i 2 0 break m n 5 m 1 3 3 4foreach语句 foreach语句是专用于对数组 集合等数据结构中的每一个元素进行循环操作的语句 通过它可以列举数组 集合中的每个元素 并且通过执行循环可以对每一个元素进行需要的操作 foreach语句一般格式如下 格式 foreach 类型名变量名in数组或集合名称 循环体 功能 对数组或集合中的每一个元素 用 变量名 表示 执行循环体中的语句 3 3 4foreach语句 说明 变量名 是一个循环变量 在循环中 该变量依次获取数组或集合中各元素的值 所以 类型名 必须与数组或集合的类型一致 循环体可以是单语句 也可以是多语句 如果是单语句 大括号可以省略 如果是多语句 分号可以省略 可以在循环体中的任意位置放置continue或break语句来结束本次循环或退出循环 break和continue语句通常结合if语句使用 例 利用foreach语句计算数组中的奇数和偶数的个数 3 3 5循环的嵌套 如果一个循环 称为 外循环 语句的循环体内包含另一个或多个循环 称为 内循环 语句 称为循环的嵌套 内循环中还可以包含循环 形成多层循环 通常把循环体内不含有循环语句的循环叫做单层循环 而把循环体内含有循环语句的循环称为多重循环 在程序设计过程中 常常需要使用循环的嵌套来处理重复操作 而在处理重复操作时 往往又需要根据某一条件改变循环的正常流程 各种循环语句可以互相嵌套 嵌套的层数理论上无限制 但多重循环可能会导致程序的执行速度有所降低 例 编写一个Windows应用程序 输出九九乘法表 3 3 6跳转语句 前面介绍过 可以在循环体中放置break语句来强制终止循环 还可以在循环体中放置continue语句来结束本次循环 break语句和continue语句都是跳转语句 使用跳转语句 可以在循环的中途直接控制流程转移 C 中提供了四种跳转语句 goto break continue和return语句 3 3 6跳转语句 1 goto语句goto 转向 语句可以将程序控制直接转移给由 行标签 标记的语句 但goto语句只能跳转到它所在方法内的行 而且该行必须有goto可以引用的行标签 goto语句的一般用于将控制传递给switch语句中特定的case标签或的default标签 有时也用于跳出深嵌套循环 但由于goto语句改变了程序的正常流程 使代码

温馨提示

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

评论

0/150

提交评论