版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.5.3 逻辑表达式,逻辑表达式用于判断运算。 逻辑表达式的值只有两个: 表达式 成立 为 true(1) 表达式 不成立 为 false(0) 表达式求值过程中,非0值都作为逻辑真。 构成逻辑表达式的运算符有关系运算符和逻辑运算符。,1. 关系运算,关系运算是指对两个运算量的大小进行比较。,关系运算符: 大于= 大于等于 小于 = 小于等于= 等于!= 不等于 优先级: 低于算术运算类,高于赋值类 结合性: 从左向右结合,例: 若有int x = 2 , y = 3 , z ; 则 x = = y x != y,值为 0,值为 1,z 的值为 1,z = 2 = 3 = 5,z = 0 =
2、 5,z = 1,z = 3 - 1 = x + 1 = y + 2,1. 关系运算,(1)设 a = 0, b = 0.5, x = 0.3 表达式 a = x = b 的结果为:,0,1,注意: 说明数学含义 x在区间a, b 的数学表达式 a x b 不能使用 a = x = b 表示 应该使用 a = x a = i + ( j % 4 != 0 ) ;,讨论:应尽量避免使用这种意义不清的表达式,3,1,2,1. 关系运算,注意关系运算的正确使用:,(4) 字符数据按ASC码值进行比较 例: a 0值为 1 (true) A 100值为 0 (false),1. 关系运算,注意关系运算
3、的正确使用:,(5) 实数比较的误差 例: 1.2345678901234567897 = 1.2345678901234567898 值为 1(true) 这是数据有效位数引起的误差。,讨论:实数比较宜采用求误差值形式: fabs ( x - y ) 例如:fabs( x - y ) 1e-5,1. 关系运算,2. 逻辑运算, x + ,2. 逻辑运算,逻辑运算规律:,E1 x + ,x +, x + ,x = y = 1 ;x - | y - ;,结果:逻辑表达式值为0,想一想 如果有 x + ; y + ; x 则 逻辑表达式的值是多少? 变量 x 、y 的值是多少?,2. 逻辑运算,-
4、2 1,例: 写出描述点 A(x,y) 落在图中绿色部分 ( 不压线 ) 的 C + + 表达式:,1.5.3 逻辑表达式,1.5.4 赋值表达式,赋值表达式的作用是把数据值写入变量,修改对象的值,一般形式为:变量 = 表达式,赋值表达式的作用是把数据值写入变量,修改对象的值,一般形式为:变量 = 表达式,赋值运算符,例如 int Score1 = 90 ; int Score2 = 75 ; int Temp = Score2; Score2 = Score1; Score1 = Temp;,1.5.4 赋值表达式,赋值表达式的作用是把数据值写入变量,修改对象的值,一般形式为:变量 = 表达
5、式,例如 int Score1 = 90 ; int Score2 = 75 ; int Temp = Score2; Score2 = Score1; Score1 = Temp;,1.5.4 赋值表达式,赋值表达式的作用是把数据值写入变量,修改对象的值,一般形式为:变量 = 表达式,例如 int Score1 = 90 ; int Score2 = 75 ; int Temp = Score2; Score2 = Score1; Score1 = Temp;,90,75,Score1,Score2,Temp,75,1.5.4 赋值表达式,赋值表达式的作用是把数据值写入变量,修改对象的值,一
6、般形式为:变量 = 表达式,例如 int Score1 = 90 ; int Score2 = 75 ; int Temp = Score2; Score2 = Score1; Score1 = Temp;,90,75,Score1,Score2,Temp,75,90,1.5.4 赋值表达式,赋值表达式的作用是把数据值写入变量,修改对象的值,一般形式为:变量 = 表达式,例如 int Score1 = 90 ; int Score2 = 75 ; int Temp = Score2; Score2 = Score1; Score1 = Temp;,90,90,Score1,Score2,Tem
7、p,75,75,1.5.4 赋值表达式,赋值运算的强制类型转换,例如 int x = 0 ; x = 2.3 ; cout x = x ;,x = 2,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值
8、,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,(1)计值,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,(2)把 z+2 的值写入 y,1.5.4 赋值表达式,赋值运算的优先级和关
9、联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,(3)把 y 的值写入 x,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z +
10、2 = x = y ;,与第一行等价,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,与第一行等价,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y =
11、z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,(1)把 y 的值写入 x,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,(2)求值,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y
12、= z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,(3)把 z+2 的值写入 x,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,注意 对变量 x 作了两次写操作,1.5.4 赋值表达式,赋值运算的优先级和
13、关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,注意 第一次赋值操作没有意义,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z
14、+ 2 = x = y ;,错误 向哪一个对象赋值?,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低 赋值运算的右结合 赋值表达式称为左值表达式,允许关联赋值,例如 x = y = z + 2 ; x = y = ( z + 2 ) ; x = ( y = z + 2 ) ; ( x = y ) = z + 2 ; z + 2 = x = y ;,它是一个右值表达式 只能放在赋值号右边,1.5.4 赋值表达式,复合赋值运算,双目算符 op 的表达式:A = A op B 可以缩写成:A op = B,c = c - k,c - = k,x = x * ( y + 8 )
15、,x * = y + 8,x = x + 3,x + = 3,x = x % 3,x % = 3,例:,1.5.4 赋值表达式,复合赋值运算,双目算符 op 的表达式:A = A op B 可以缩写成:A op = B,+= -=*=/=%= = cout a b; cout = 0 ? a + b : a - b ) endl ; ,注意 添加括号 条件运算级别低于插入,1.5.5 条件表达式,示例, 计算 a、b之中的大值: max = a b ? a : b 求 a 的符号: sig = a 0 ? 1 : ( a = A ,逗号表达式示例:,(1) a = 3 * 5, a * 4,(2) ( a = 3 * 5 , a * 4 ) , a + 5,(3) b = ( a = 3, 6 * 3 ),(4) b = a = 3 , 6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急性心梗识别与护理
- 语音室安全管理制度培训
- 2025《装在套子里的人》中别里科夫的社交恐惧课件
- 机械安全管理规定培训课件
- 2026年化工行业特许经营协议
- 氧化铝厂安全通则培训课件
- 安全管理综合培训:防病、防疫与防中毒
- 2026年广东水利电力职业技术学院单招职业技能测试题库及答案详解1套
- 2026年广东科贸职业学院单招职业倾向性测试题库及参考答案详解(新)
- 2026年广东理工职业学院单招职业倾向性考试题库带答案详解(满分必刷)
- 酒店客房员工考核制度
- 2026年内蒙古商贸职业学院单招职业技能测试题库附答案详解(夺分金卷)
- 2025四川遂宁市中心医院公开招聘非在编卫生专业技术人员30人护理笔试历年典型考题及考点剖析附带答案详解试卷2套
- 2026年春季学期学校红领巾广播站工作计划及栏目设置表更新通知
- 小儿静脉血栓栓塞症诊疗指南
- 2026云南昆明巫家坝商业运营管理有限公司校园招聘8人笔试备考题库及答案解析
- 五年级数学下册期末真题卷(人教版成都锦江区)
- 培训学校理事会监督制度
- 2026年中煤一局集团有限公司招聘备考题库及一套完整答案详解
- (2025年)机械操作手安全培训试题及答案
- 汽车制造焊接工艺技术规范
评论
0/150
提交评论