2020/3/241说明:关系运算的结果应该是逻辑值。C语言用数值1表示逻辑真,0表示逻辑假例如:75的值是1,57可以吗?'a''b'的值是0,'a''b'的值是1即关系表达式的值:0或1实型数可进行大于或小于比较,但通常不进行==或!=的关系运算2020/3/242逻辑运算符逻辑运算符&&||!逻辑运算符的运算规则运算对象逻辑运算结果aba&&ba||b!a非0非0110非000100非0011000012020/3/243逻辑表达式逻辑表达式用逻辑运算符将运算对象连接成的式子例如:0&&'b'a&&b||c&&da||b-5||c/4!x+y=z逻辑运算符的优先级和结合性:!是单目运算符,右结合,高于算术运算符&&和||是双目运算符,左结合,高于赋值运算符,低于关系运算符2020/3/244逻辑运算规则从左到右依次进行逻辑计算运算对象为非0表示逻辑真运算对象为0表示逻辑假逻辑运算的结果为0或1例如设:a=15,b=0,c=-2a&&b&&ca||b||c(a+c)||b&&c结果为0结果为1结果为12020/3/245逻辑运算规则(续)逻辑运算的短路性质:运算按照从左至右的顺序进行,一旦能够确定逻辑表达式的值,就立即结束运算例如设:a=1,b=0,c=-2a&&b&&c(a++)||++b&&--c等价于(a++)||(++b&&--c)为0,运算终止,表达式值为0为非0,运算终止,表达式值为1且a为2,b为0,c为-2(b,c保持原值)2020/3/246关系与逻辑运算符的应用表示数学公式abc判断a,b,c三条线段能否组成一个三角形a,b不同时为负a+bc&&a+cb&&b+caa0||b0!(a0&&b0)(a0&&b=0)||(a=0&&b0)||(a=0&&b=0)ab&&bc2020/3/247条件表达式运算条件运算符:?:条件表达式的一般形式表达式1?表达式2:表达式3功能:计算表达式1,如果非0,则计算表达式2,并将其作为整个条件表达式的值;否则计算表达式3,并将其作为整个条件表达式的值。例如:mn?x:a+32020/3/248条件运算符优先级条件运算符优先级高于赋值、逗号运算符,低于其他运算符例如:⑴mn?x:a+3⑵a++=10&&b--20?a:b⑶x=3+a5?100:200等价于:(mn)?(x):(a+3)等价于:(a++=10&&b--20)?a:b等价于:x=((3+a5)?100:200)精品课件!精品课件!2020/3/2411条件运算符的结合性条件运算符具有右结合性例如:wx?x+w:xy?x:y与wx?x+w:(xy?x:y)等价与(wx?x+w:xy)?x:y不等价条件表达式中各表达式类型可以不一致。当表达式2和表达式3类型不同时,条件表达式值的类型取两者中精度较高的类型。