




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章 流程控制 在我们的日常生活中,并非所有的事情都能按部就 班的进行,程序也如此。为了达到自己的目的,我 们经常需要转移或者改变程序执行的顺序,如依据 满足哪个条件来决定执行哪条语句。这样就引出了 我们这一章的内容流程控制,即通过条件语句 控制程序的流程。 我们现在用流程图给大家介绍一下顺序执行、 选择执行和循环执行,如下图所示。 5.1 选择执行条件 依据条件的真假选择性的执行语句,这是流程 控制的一种比较简单的情况。我们在这一节将 来介绍如何判断真假以及如何关系运算和逻辑 运算。 5.1.1 条件真假布尔类型的转化 判断条件的真假是我们进行选择的前提条件。最简单的真假 是利用单个数值判断,它主要包括的几种类型以及判读方法 如下图所示。 5.1.2 关系运算 关系运算可以将两个数据组合为一个条件。运用字 段、变量、关系运算符,可以组成关系运算表达式 ,其一般格式如图5.5所示。 关系表达式中大家最主要最需要掌握的是关系运算 符,下面我们就来给大家介绍。 关系运算 在关系运算符中,“关系”是指值与值之间可能的关系。C#中 常见的关系运算符有六种:=、!=、=、 大于aba大于b时返回真,否则返回假 =大于等于a=ba大于等于b时返回真,否则返回假 =小于等于a=ba小于等于b时返回真,否则返回假 5.1.3 逻辑运算 逻辑运算符有三种,如下图所示。它在两个表达式上执行布 尔逻辑运算。 逻辑运算符的运算规则如下表所示: ab!a!ba&ba|b 真(1) 真(1)假(0)假(0)真(1)真(1) 真(1) 假(0)假(0)真(1)假(0)真(1) 假(0) 真(1)真(1)假(0)假(0)真(1) 假(0) 假(0)真(1)真(1)假(0)假(0) 逻辑运算 关于逻辑运算,运算符有优先级高低区分,三种逻辑运算符 的优先级高低如下图(左)所示: 根据逻辑运算符的优先级以及运算符的规则来求得下图(右 )逻辑表达式的真假取值: 5.2 选择语句 当程序中需要进行两个或两个以上的选择时, 可以根据条件判断来选择将要执行的一组语 句。C#提供的选择语句有if语句和switch语句 ,同时if语句又可以分为三种:简单的if语 句、ifelse语句、ifelseif语句。以下我们 将依次介绍,在介绍之前有必要让大家了解一 下问号运算符。 5.2.1 问号运算符 问号运算符需要3个操作数,是三元运算符。它的基本形式如 下图所示。 使用问号运算符将val的绝对值赋给absval: absval = val 0 ? -val : val 【示例5-2】演示问号运算符的用法。 5.2.2 IF语句 if语句是最常见的选择语句,它根据布尔表达式的值来判断是 否执行后面的内嵌语句。if语句的格式以及对其的说明流程图 如下图所示。 【示例5-3】演示if语句的用法。 【示例5-4】演示将示例5-3中if执行语句的大括号去掉的情 况。 5.2.3 IFELSE语句 ifelse语句也是选择结构中常常用到的选择控制语句。 ifelse语句的格式以及对格式的说明如下图所示: 【示例5-5】演示的是使用ifelse语句判断两个数值的大小。 5.2.4 IFELSEIF语句 ifelseif形式语句即多重if语句,是一种多重分支选择结 构。 【示例5-6】下面代码以一个数学函数的表达式为例,演示了 ifelseif形式语句的用法。该数学函数表达式为下图(左 ),流程图为(右)。 5.2.5 SWITCH语句 switch语句 根据一个 控制表达式的值 选择一个 内嵌语句分支 来执行。 在switch语句在使用过程中,我们需要注意的几点如 下表所示: 1 控制表达式的数据类型可以是sbyte、byte、short、uint、long、 ulong、char、string或枚举类 型(后两种类型我们随后会讲到) 2每个case标签标签 中的常量表达式必须须属于或能隐隐式转换为转换为 控制表达式的类类型 3 如果有两个或者两个以上case标签标签 中的常量表达式值值相同,编译时编译时 将会报报 错错 4switch语语句中最多只能有一个default标签标签 5要求每个标签项 后使用break语句或跳转语 句goto(稍后将会讲到) 【示例5-7】演示switch语句是如何实现程序的多路分支的。 假设考查课的成绩按优秀、良好、中等、及格和不及格分为 五等,分别用4、3、2、1、0来表示。但实际的考卷为百分制 ,分别对应的分数为100-90、90-80、80-70、70-60、60分以 下。下面的程序将考卷成绩x转换为考查课成绩y。 该程序的流程图如下图所示。 如果switch 表达式的多个 值需要执行 相同的语句, 可以采用右面的 switch语句格式。 5.3 循环语句 循环语句可以实现一个程序模块的重复执行。 它对于我们简化程序,更好的地组织算法有着 重要的意义。C#提供了四种循环语句,分别 使用于不同的情形: while语句 do-while语句 for语句 foreach语句 5.3.1 WHILE语句 while语句是最简单的循环语句,它有条件地将内嵌语句执行0 遍或若干遍。while语句的一般形式及流程图如下图所示。 【示例5-8】演示的是使用while循环计算整数数量级。 5.3.2 DO-WHILE语句 不同于while循环,do-while循环在循环的末尾测试条件,这就 意味着do-while循环体至少执行一次。do-while循环的一般形 式及流程图如下图所示。 【示例5-9】演示的是使用do-while循环来实现求整数的阶 乘。 5.3.3 FOR语句 for语句是C#中使用频率最高、功能最强大的循环语句。在事 先知道循环次数的情况下,使用for语句是比较方便的。for语 句的一般形式及执行流程图如下图所示。 【示例5-10】用for循环语句,以5为递减值,输出从20到-20 的值。 for循环中最重要的一点就是,总是在循环的开始处测试条件 表达式。这意味着如果条件为假,那么循环内的代码根本不 会执行。 【示例5-11】演示的是for循环条件表达式为假的情况。 for循环是C#语言中功能最强大的循环语句,因为它有许多不 同的形式可供灵活采用。 1.使用多个循环控制变量 for循环允许使用两个或多个变量来控制循环。使用多个循环 控制变量时,必须使用逗号将各变量的初始化语和递增语句 隔开。 【示例5-12】演示的是for语句中使用两个循环控制变量。 2.条件表达式 任何产生布尔类型值的有效表达式都可以作为for循环的条件 表达式,它不需要涉及循环控制变量。下面的程序中,for循 环由done的值来控制。 【示例5-13】演示的是for语句中的条件表达式的作用。 3.部分省略 在C#中可以省略for循环中的初始化、条件或迭代这3个 部分中的一些或全部。 【示例5-14】演示的是for语句中可以省略部分表达式。 4.在for循环内部声明循环控制变量 通常,控制for循环的变量只用于循环,而没有其他用 途。在这种情况下,可以在for循环的初始化部分中声明 循环控制变量。例如,下面的程序计算自然数15的和以 及阶乘,它在for语句内声明循环控制变量。 【示例5-15】演示的是在for循环内部声明循环控制变 量。 5.3.4 FOREACH语句 foreach循环用于遍历集合中的元素,集合是一 组对象。C#定义了多种集合类型,其中之一 是数组,后面我们讲到数组时再给大家详细介 绍foreach语句。 5.4 跳转语句 跳转语句用于无条件的转移控制。在C#中常 见的跳转语句包括:break语句、continue语句 和goto 语句,我们以下将分别介绍。 5.4.1 BREAK语句 break 语句用于终止最近的封闭循环或它所在的switich语句, 控制传递给终止语句后面的语句。 【示例5-16】演示的是break语句的用法。 关于break语句还有两点需要注意,如下图所示。 在while语句、do-while语句、foreach语句中也可以使用break 语句结束循环。 5.4.2 CONTINUE语句 continue语句可用来跳过循环体中的其他部分,而强制程序提 前进入循环的迭代部分。因此,continue语句本质上是break语 句的补充。 【示例5-17】使用continue语句实现了0100之间偶数的输 出。 需要注意的是在不同的循环中,continue语句执行的方式不太 一样,如下图所示。 5.4.3 GOTO语句 使用goto语句可以无条件地将控制转移到其他程序段。 goto语句的格式如下图所示。 控制转移的目标是由一个标签标记的。合法的目标位置 包括goto语句当前级或当前循环的外部。 需要提醒大家注意的是,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.1人体的呼吸教学设计2023-2024学年人教版生物七年级下册
- 爱护公物我能行(说课稿)2025-2026学年初三下学期教育主题班会
- 2024-2025学年新教材高中生物 第4章 细胞的生命历程 素能提升课 与有丝分裂有关的图像分析与应用说课稿 浙科版必修第一册
- 2025年中国高纯度六氟化钨行业市场分析及投资价值评估前景预测报告
- 2025年中国干水培营养素行业市场分析及投资价值评估前景预测报告
- 第十五课《骄傲使人落后》教学设计-心理健康三年级上册北师大版
- 安徽省长丰县高中数学 第一章 统计案例 1.2 独立性检验的基本思想及其初步应用(2)说课稿 新人教A版选修1-2
- 第一单元 国宝大熊猫说课稿小学信息技术(信息科技)旧版西师大版
- 《口语交际:意见不同怎么办》教学设计-统编版语文六年级上册
- 高级影像考试题库及答案
- 【初中语文】第1课《消息二则》课件++2025-2026学年统编版语文八年级上册
- 电力消防安全知识考试题库含答案2025
- 2025年国学与传统文化考试试题及答案
- 仪表参数调校规程
- 2025 精神障碍患者暴力行为干预资源利用护理课件
- 2024年10月自考00144企业管理概论真题及答案
- 子宫颈炎症护理课件
- 石油化工课件
- 非小细胞肺癌课件
- 6.1正视发展挑战 课件 2025-2026学年度道德与法治九年级上册 统编版
- 涉密人员岗前知识培训课件
评论
0/150
提交评论