逻辑运算符和逻辑表达式有时.ppt

  1. 1、本文档共123页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
逻辑运算符和逻辑表达式有时

例:分析执行下列语句后的结果: a=5; ? b=a++; c=--a-b++; d=(a++)-(++b)+c--; ? 5 5 6 5 0 6 7 -2 6 -1 思考:i++和++i 执行效率有什么区别? 建议:只有在必要时才使用后置操作符! 表达式求值三要素 a b c d 表达式值 5 5 0 -2 * 4.逻辑运算、逻辑表达式及其求值优化 ok 逻辑运算: 用于判断分析,运算符包括关系和逻辑运算符。 关系运算符: 包括:?(大于)、??(大于等于)、?(小于)、??(小于等于)、==(等于)和 !=(不等于)。关系运算符完成两个操作数大小的比较,结果为逻辑值true(真)或false(假)。 注意: 在C++中这两个逻辑值与整数之间有一个对应关系,真对应1,假对应0;反过来,0对应假,非0整数对应真。所以逻辑运算结果可以作为整数参与算术运算、关系运算、逻辑运算及其他运算。 关系运算符和关系表达式 大于 名称 小于 等于 大于等于 运算符 == = ab 例子 ab a==b a=b a=b 小于等于 = a!=b 不等于 != = = 优先级 高 低 == != 算术运算符 关系运算符 赋值运算符 左结合性 表达式求值三要素 高 低 * 关系表达式: 例如: a+bc+d /*等同于(a+b)(c+d), 结果为0或1*/ y=ab /*计算ab的值0或1 赋给y,y的值为0或1*/ abc /*等同于(ab)c,先求ab 的值, 再将结果0或1与c比较大小*/ 由关系运算符连接的表达式。值为true或false。 ok 表达式求值三要素 * 4.逻辑运算、逻辑表达式及其求值优化 设有定义 float a=3.2;int b=2;则: 4ab //结果是? 根据左结合 原则其运算 过程如下: a 2 b 3.2 4 T, 即1 F即0 表达式求值三要素 练习 设 int a(2), b(4), c(1); 计算以下关系表达式和对应对象的值: 1. a+bb+c 2. (x=2)(y=5) 可以是赋值表达式 3. ab==bc * 优先级 运算符 名 称 语 义 3 ! 逻辑非, 单目 操作数的值为真,则结果为假;反之结果为真 12 逻辑与, 双目 当两个操作数全为真时,结果为真,否则为假; 13 || 逻辑或,双目 两个操作数中有一个为真,则结果为真; 逻辑运算符: 包括:!、和||,其优先级和语义见下表。 逻辑运算符和逻辑表达式 有时,只用一个简单的关系表达式无法完整地表达一个条件,如: y= 其中的条件需要用逻辑表达式来表达: x!=0 a!=0 就是一种逻辑运算符。 1/x+1/a 当x≠0,a≠0时 10000 其它 * 由逻辑运算符连接的表达式。 其操作数和运算结果均为逻辑量。运算结果同样可以作为一个整数参与其他运算。 由于逻辑值和整数之间的对应关系,也允许整型和字符型操作数进行逻辑运算: 210 //逻辑与,21与0,结果为假:0 21||0 //逻辑或,21或0,结果为真:1 !21 //逻辑非,21的非,结果为假:0 逻辑表达式: ■优先级: ■结合性: , ||:左结合性 !:右结合性 ! 逻辑非 算术运算符 关系运算符 逻辑与 ||逻辑或 赋值运算符 表达式求值三要素 高 低 * 逻辑表达式求值的短路效应: 在求逻辑表达式值的过程中,一旦表达式的值能够确定,编译器就不再计算后面的运算。称为短路求值(short-circuit evaluation) 。 已知: int a=10, b=20, c=30; 求: ab || c++ //结果以及a,b,c的值 t1=1 ① 整个表达式的值为 1 可见: 表达式 c++ 已不需要计算所以: c不变仍为 30 思考: 若上述表达式改为 abc++,c值为多少? * ok 已知: int a=10, b=20, c=30;float x=1.8, y=2.4; abxy||ab-!c 按优先级与结合性,其求值顺序等同于: ((ab)(xy))||(a(b-(!c))) t1=1 t2=0 t4=0 - t3=0 t5=b t

您可能关注的文档

文档评论(0)

ailuojue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档