版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主讲教师:葛日波,第7讲 分支程序设计-1,邮箱: 电话:知 识 回 顾,1.副作用与表达式求值,3.常用库函数,隐式类型转换 强制类型转换,2.混合表达式与数据类型转换,4.简单程序设计,问 题 引 出,1.简单的程序设计情况比较简单、顺序执行,2.现实问题不可能如此简单,试回顾上次课最后的程序,如果用户在运行程序后输入一个负数,会发生什么事情呢? 回答是:程序仍将执行,并给出了一个错误的结果,显然程序是存在缺陷的 解决的办法:在设计程序时,应该考虑输入的是正数还是负数的不同情况有选择地进行不同处理 这就是本次课要研究的分支程序设计,主 要 内 容,3.1 关系
2、与逻辑运算,3.1.1 逻辑数据,3.1.2 关系运算,3.1.3 逻辑运算,目的要求,复习思考题,3.2 两路分支,3.2.1 ifelse语句,3.2.2 if语句,3.2.3 if语句的嵌套,3.2.4 条件表达式,3.1 关系与逻辑运算,3.1.1 逻辑数据,1.用来表示“真”和“假”的数据称为逻辑数据,2.C中没有逻辑类型,它用其它类型来表示逻辑型数据,3.1.1 逻辑数据,3.C中规定,0值表示“假”,非0值表示“真”,(1)也叫比较运算,用来比较两个值的大小,结果是逻辑值,3.1.2 关系运算,3.1.2 关系运算,(2)C中有6种关系运算,(1)关系运算是二元运算,对两个值进行
3、大小比较,2.注意事项,2.注意事项,(2)任意类型的表达式都可以参加比较运算,若有下面的定义: int m, n; int a = 1, b = 2; float y = 5, z; 则下列的表达式都是合法的:,5 3 /* 两个初级表达式(常量)比较 */ y = b+ /* 一元表达式与后缀表达式进行比较 */ (m = 4) = (n = 3) /* 两个赋值表达式进行比较 */ (y 3) 5) /* 两个关系表达式进行比较 */,(3)关系运算的结果是逻辑值“真”或“假”,(4)若结果为“真”则值是1;若结果为“假”则值是0,若有下面的定义: int a = 3,b = 2, x
4、= 5; 则下列的表达式:,5 3 结果为“真” 值为 1 x = b+ 结果为“真” 值为 1,(5)前四个的优先级高于后两个,结合性都是左结合,a = b c 等价于 a = (b c) a b c 等价于 (a b) c),(6)不可以简单地通过几个连续的关系运算来构建复杂的条件,3 x 5 不能表示x(3,5),(1)逻辑运算是对逻辑值进行的运算,结果还是逻辑值,3.1.3 逻辑运算,1.逻辑运算概述,(2)C中有3种逻辑运算,3.1.3 逻辑运算,1.逻辑运算概述,(1)逻辑运算是对逻辑值实施的运算,结果还是逻辑值,2.注意事项,2.注意事项,(2)任意类型的表达式都可以参加逻辑运算
5、,若有下面的定义: int a = 0, b = 13; float y = -3.14; char c = A; 则下列的表达式都是合法的:,!5 结果为“假” 值为0 !a 结果为“真” 值为1 !y 结果为“假” 值为0 !(b % 2) 结果为“假” 值为0 a = 0 ,问: 执行以下的语句后,m和n的值各是多少?,(m = a b) ,(4)关系运算的互补问题,关系运算之间存在互补 存在互补关系的运算,只要对一个取非运算就和另一个等价 编程时应尽量选择简单的格式 基本原则是: 能用关系运算表示的,就不要再进行逻辑运算,3.2 两路分支,1.分支又叫选择,它是一种程序结构,2.两路分
6、支是根据某一条件,有选择地执行两部分代码的一个,3.2.1 ifelse语句,1.语句结构和流程图,3.2.1 ifelse语句,1.语句结构和流程图,2.注意事项,2.注意事项,(1)if后的括号不能省略,括号后不能有分号,(2)expression可以是任意类型的表达式,(3)s1和s2是语句,它们可以是一条语句、空语句或多条语句,若为多条语句就必须使用括起来,(4)由于存在互补关系,用不同的表达式就有不同的程序格式,3.2.2 if语句,1.语句结构,3.2.2 if语句,1.语句结构,(1)if语句是ifelse语句的特例,(2)等价于条件为“假”时什么也不做,2.注意事项,(1)if
7、语句同样可以利用互补关系表示为不同格式,(2)编程时要尽量使用简单的格式,2.注意事项,3.2.3 if语句的嵌套,1.语句结构与流程图,if.else语句中又含有其它if.else语句,3.2.3 if语句的嵌套,1.语句结构与流程图,(1)C对嵌套的层数没有要求,但一般不要超过三层,2.注意事项,2.注意事项,(2)在嵌套结构中,一定要注意if与else的配对关系,(3)可以通过加来改变if与else的配对关系,3.2.4 条件表达式,(1)由两个运算符(?和:)把三个操作数连接而成的式子,1.条件表达式概述,3.2.4 条件表达式,1.条件表达式概述,(2)它是C中唯一一个三元表达式,(
8、3)表达式的一般形式,表达式1 ? 表达式2 : 表达式3,x = 5 ? y = x * x : y = x + x,(4)条件表达式的值是表达式2或表达式3中一个的值,(1)优先级是3,比赋值运算高,2.注意事项,2.注意事项,(2)三项条件表达式可以嵌套,flag = x % 2 ? 1 : 0;,flag = x 0 ? 1 : x 0 ? -1 : 0,目 的 要 求,1.理解C中逻辑数据的表示方法,2.掌握关系运算和逻辑运算种类和处理方法,4.掌握ifelse语句,if语句和嵌套结构的用法,3.理解逻辑短路的概念和意义,5.掌握条件表达式及其处理方法,复习思考题,*6.在ifelse嵌套结构中,if与else的配对原则是什么?,说明:题目前面的*代表问题的重要程度,*1.什么是逻辑数据? 在C中如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网河北省电力有限公司高校毕业生招聘180人(第二批)笔试备考试题及答案解析
- 钢结构施工质量追踪方案
- 2026年春季河南信阳科技职业学院行政管理人员招聘8人笔试参考题库及答案解析
- 2026重庆登康口腔护理用品股份有限公司招聘3人笔试参考题库及答案解析
- 2026贵州贵阳市师范学校附属实验小学临聘教师招聘考试参考试题及答案解析
- 新型合作医疗监督制度
- 日间照料监督制度
- 村务民主监督制度
- 校园防欺凌监督制度
- 检察 内部监督制度
- 自然灾害风险评估与预警演示
- 外科学总论:第六章 麻醉(anesthesia)
- 中国民间故事全书:浙江 苍南卷
- 好书推荐骆驼祥子
- 不同人群血糖控制目标
- 管理系统中计算机应用
- 新大象版四年级下册科学第二单元《自然界的水》课件(共4课)
- 彩钢板屋面拆除、更换屋面板施工方案(改)
- 神经病学课件:运动神经元病
- 外科学小肠疾病课件
- 中国当代文学史试题与答案(8套)
评论
0/150
提交评论