在 C 语言编程中,总少不了一些逻辑运算和条件判断,比如当心情好时吃火锅,而心情不好的时候 ,吃巧克力,换句话说,在不同的条件下会触发程序的不同执行动作。这章就是学会如何利用关系、逻辑、条件运算符以及各种相关的逻辑判断语句实现这些需求。
一、关系运算符、关系表达式与逻辑运算符 、逻辑表达式
2、关系运算符和关系表达式
1)关系运算符
关系运算,又叫比较运算。将两个值进行比较 ,判断比较结果是否符合给定条件。
前面已经讲解过的运算符有算术运算符、赋值运算符、 逗号运算符、求占字节数运算 符 (sizeof)、强制类型转换运算符。
下面是关系运算符,一共有6种:
> | 大于 | 表达式>表达式 | 左到右 | 双目运算符 |
>= | 大于等于 | 表达式>=表达式 | 双目运算符 | |
< | 小于 | 表达式 | 双目运算符 | |
<= | 小于等于 | 表达式 | 双目运算符 | |
== | 等于 | 表达式==表达式 | 左到右 | 双目运算符 |
!= | 不等于 | 表达式!= 表达式 | 双目运算符 |
注意:
(1)>、>=、<、<=四个关系运算符优先级相同,==、!=两个关系运算符优先级也相同,但>、>=、<、<= 的优先级比 ==、!=高。
(2)关系运算符的优先级低于算术运算符。
(3)关系运算符的优先级高于赋值运算符。
(4)关系运算符中的等于 "== "是两个等号,一定不能写成一个等号 = ,否则就变成赋值运算符了。
因为在编写程序的过程中 ,经常常要用到算术运算符、关系运算符 、赋值运算符之 间的混合运算,这三个运算符之间的优先级需要记一下。
算术运算符优先级>关系运算符>赋值运算符
例:
c > a + b //等价于 c> (a +b)时,关系运算符 > 优先级 低于 算术运算符 +
a > b == c //等价于 (a>b)==c,都是关系运算符,但 > 优先级 高于 关系运算符 ==
a == b < c //等价于 a == (b < c),都是关系运算符,但 == 优先级 低于 关系运算符 <
a = b > c //等价于a = (b > c),赋值运算符 = 优先级 低于 关系运算符 >
2)关系表达式
用关系运算符将两个表达式连接起来的式子就叫关系表达式。
例:
a>b
a<=c
关系表达式的值是一个逻辑值 ,也就是"真"或者"假"。
例:
1==2的值为假,5>=0的值为真
在C语言中,"真"用true表示,也可以用1表示, “假"用 false表示,也可以用0表示。所以,关系表达式的结果值可以认为是 0 或者1,也可认为是true或者 false。
例:
例:
练习:
int a,b,c;
a=3;b=2;c=1;
下面关系表达式的值为真还是假?
(a>b)==c;
b+c<a;