目录
4.1 引例
例4.1
说明:程序运行时,首先输入三角形的三条边,分别保存在三个整型变量a,b,c中,然后根据三角形构成条件,判断任意两边之和是否大于第三边。若不满足此条件,则这三条边就不能构成一个三角形,若满足此条件就可以构成三角形,则根据相应公式计算出三角形的面积。
例4.2
说明:程序中用到了逻辑运算符“!”,含义是“非”。
4.2 关系运算符,逻辑运算符,条件运算符
4.2.1 关系运算符和关系表达式
1.关系运算符
关系运算符用于判断两个操作数的大小关系。
表4.1 关系运算符
运算符 | 含义 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
注意:
(1)关系运算符都是双目运算符,其结合方向是左结合。
(2)关系运算符的优先级低于算术运算符,但是高于赋值运算符。
(3)关系运算符中,>,<,>=,<=的优先级相同,==,!=的优先级相同,前者的优先级高于后者,即“>=”的优先级高于“==”。
2.关系表达式
用关系运算符将两个表达式连接起来的式子称为关系表达式。
一般形式 表达式1 关系运算符 表达式2
功能:比较两个表达式的大小,返回一个逻辑值。
注意:
(1)注意区分运算符“=”和“==”。“=”是赋值运算符,“==”是关系运算符。
(2)对实数进行相等判断可能得不到正确的结果,例如“1.0/3*3.0==1.0”的结果为0.
(3)关系表达式中可以出现赋值运算符,如“a>(b=0)”,但是不能写成“a>b=0”的形式。因为关系运算符的优先级高于赋值运算符,表达式“a>b=0”相当于“(a>b)=0”,赋值运算符左边不是变量,会出现编译错误。
关系表达式主要用于分支结构中的条件判断。关系表达式的结果是一个逻辑值“真”或“假”,由于C语言中没有逻辑类型的数据,因此用“1”表示“真”,“0”表示“假”。
例4.3
4.2.2 逻辑运算符和逻辑表达式
1.逻辑运算符
关系表达式只能描述单一的条件。对于较复杂的复合条件,例如“x小于 10 且x大于4”,如果用关系表达式“4<x<10”来描述,则当 ×=2 时,由于关系运算符是左结合的,因此先计算“4<x”,其值为 0;然后再计算“0<10”,其值为 1:即说明当x=2时满足关系“K<x<10”,很显然是错误的。此时需要用到逻辑运算符将若干个关系表达式连接起来才能正确捕述上述关系。
表4.2 逻辑运算符
运算符 | ! | && | || |
名称 | 逻辑非 | 逻辑与 | 逻辑或 |
结合性 | 右结合 | 左结合 | 左结合 |
优先级 | 高 | 低 |
注意:与运算符&&和或运算符||都是双目运算符,非运算符!为单目运算符。
2.逻辑表达式
用逻辑运算符将两个表达式连接起来的式子称为逻辑表达式。
一般形式:表达式1 逻辑运算符 表达式2
或逻辑运算符 表达式1
表4.3 逻辑运算的真值表
x | y | !x | x&&y | x||y |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 0 | 1 |