《c++程序设计》第1章 基本数据与表达式(四-2)

上传人:wm****3 文档编号:56888582 上传时间:2018-10-16 格式:PPT 页数:55 大小:547.50KB
返回 下载 相关 举报
《c++程序设计》第1章 基本数据与表达式(四-2)_第1页
第1页 / 共55页
《c++程序设计》第1章 基本数据与表达式(四-2)_第2页
第2页 / 共55页
《c++程序设计》第1章 基本数据与表达式(四-2)_第3页
第3页 / 共55页
《c++程序设计》第1章 基本数据与表达式(四-2)_第4页
第4页 / 共55页
《c++程序设计》第1章 基本数据与表达式(四-2)_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《《c++程序设计》第1章 基本数据与表达式(四-2)》由会员分享,可在线阅读,更多相关《《c++程序设计》第1章 基本数据与表达式(四-2)(55页珍藏版)》请在金锄头文库上搜索。

1、1.5.3 逻辑表达式,逻辑表达式用于判断运算。逻辑表达式的值只有两个:表达式 成立 为 true(1)表达式 不成立 为 false(0) 表达式求值过程中,非0值都作为逻辑真。构成逻辑表达式的运算符有关系运算符和逻辑运算符。,1. 关系运算,关系运算是指对两个运算量的大小进行比较。,关系运算符: 大于 = 大于等于 小于 = 3 = 5,z = 0 = 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

2、 表示应该使用 a = x & x 2 7 6 的结果为:,0,1,讨论: 5 2 7 8 是一个无意义的数学式子,但在C+中是合法表达式应尽量避免使用这种意义不清的表达式,0,1. 关系运算,注意关系运算的正确使用:,(3) 关系表达式的结果为整数,所以也可以看作整型表达式。例: int i = 1 , j = 7 , a ;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. 逻辑运算,& 逻辑与 左结合 | 逻辑或 左结合 ! 逻辑非 右结合,逻辑运算符:,逻辑与,2. 逻辑运算,逻辑与,2. 逻辑运算,逻辑与,2. 逻辑运算,逻辑或,逻辑与,2. 逻辑运算,逻辑或,逻辑与,2. 逻辑运算,逻辑或,逻辑与,2. 逻辑运算,逻辑与,逻辑或

4、,2. 逻辑运算,逻辑与,逻辑或,2. 逻辑运算,逻辑与,逻辑或,逻辑非,2. 逻辑运算,逻辑与,逻辑或,逻辑非,2. 逻辑运算,逻辑与,逻辑或,逻辑非,2. 逻辑运算,逻辑与,逻辑或,逻辑非,2. 逻辑运算,逻辑真值表:,2. 逻辑运算,逻辑运算规律:,1 & a = = a 0 | a = = a 0 & a = = 0 1 | a = = 1 0 & !a = = 0 1 | !a = = 1,a | a = = a a & a = = a ! ( a | b ) = = !a & !b !( a & b) = = !a | !b ! ( !a ) = = a,2. 逻辑运算,其中:a,

5、b均为逻辑值1(true)或0(false),逻辑运算规律:,E1 & E2 当表达式 E1 的值为 0 时,不再对 E2 求值 E1 | E2 当表达式 E1 值为非 0 时,不再对 E2 求值,例:,x = y = 0 ; x + ,2. 逻辑运算,逻辑运算规律:,E1 & E2 当表达式 E1 的值为 0 时,不再对 E2 求值 E1 | E2 当表达式 E1 值为非 0 时,不再对 E2 求值,例:,x = y = 0 ; x + ,x +,&,x + &,x +,结果:逻辑表达式值为0,x 的值为 1,y 的值为 0,2. 逻辑运算,结果:逻辑表达式值为1,逻辑运算规律:,E1 &

6、E2 当表达式 E1 的值为 0 时,不再对 E2 求值 E1 | E2 当表达式 E1 值为非 0 时,不再对 E2 求值,例:,x = y = 0 ; x + ,x = y = 1 ; x - | y - ;,结果:逻辑表达式值为0,想一想如果有x + ;y + ;x 则 逻辑表达式的值是多少?变量 x 、y 的值是多少?,2. 逻辑运算,-2 1,例: 写出描述点 A(x,y) 落在图中绿色部分 ( 不压线 ) 的 C + + 表达式:,1.5.3 逻辑表达式,1.5.4 赋值表达式,赋值表达式的作用是把数据值写入变量,修改对象的值,一般形式为: 变量 = 表达式,赋值表达式的作用是把数

7、据值写入变量,修改对象的值,一般形式为: 变量 = 表达式,赋值运算符,例如 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;,1.5.4 赋值表达式,赋值表达式的作用是把数据值写入变量,修

8、改对象的值,一般形式为: 变量 = 表达式,例如 int Score1 = 90 ; int Score2 = 75 ; int Temp = Score2; Score2 = Score1; Score1 = Temp;,90,75,Score1,Score2,Temp,75,1.5.4 赋值表达式,赋值表达式的作用是把数据值写入变量,修改对象的值,一般形式为: 变量 = 表达式,例如 int Score1 = 90 ; int Score2 = 75 ; int Temp = Score2; Score2 = Score1; Score1 = Temp;,90,75,Score1,Scor

9、e2,Temp,75,90,1.5.4 赋值表达式,赋值表达式的作用是把数据值写入变量,修改对象的值,一般形式为: 变量 = 表达式,例如 int Score1 = 90 ; int Score2 = 75 ; int Temp = Score2; Score2 = Score1; Score1 = Temp;,90,90,Score1,Score2,Temp,75,75,1.5.4 赋值表达式,赋值运算的强制类型转换,例如 int x = 0 ; x = 2.3 ; cout “x = “ x ;,x = 2,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低赋值运算的右

10、结合赋值表达式称为左值表达式,允许关联赋值,例如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 + 2 = x = y ;,(1)计值,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算

11、的优先级很低赋值运算的右结合赋值表达式称为左值表达式,允许关联赋值,例如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 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低赋值运算的右结合赋值表达式称为左值表达式,允许关联赋值,例如x = y = z + 2 ;x = y = ( z + 2 ) ;x = ( y = z + 2 ) ;( x = y ) = z + 2 ;z + 2 = x = y ;,(3)把 y

12、的值写入 x,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 = z + 2 ) ;( x = y ) = z +

13、 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 + 2 = x = y ;,(1)把 y 的值写入 x,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低赋值运算的右结合赋值表达式称为左值表达式,允许关联赋值,例如x = y = z + 2 ;x = y = ( z + 2 ) ;x = ( y

14、 = z + 2 ) ;( x = y ) = z + 2 ;z + 2 = x = y ;,(2)求值,1.5.4 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低赋值运算的右结合赋值表达式称为左值表达式,允许关联赋值,例如x = y = 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 赋值表达式,赋值运算的优先级和关联性,赋值运算的优先级很低赋值运算的右结合赋值表达式称为左值表达式,允许关联赋值,例如x = y = z + 2 ;x = y = ( z + 2 ) ;x = ( y = z + 2 ) ;( x = y ) = z + 2 ;z + 2 = x = y ;,注意 第一次赋值操作没有意义,1.5.4 赋值表达式,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号