您的位置:首页 > 编程语言 > C语言/C++

C++ 初学者指南 第二篇(6)

2009-12-29 21:16 295 查看
必备技能2.5 关系和逻辑运算符
术语关系运算符和逻辑运算符中,关系是指值和其它的值可能存在的关系,逻辑是指真值和假值关联起来的方式。关系运算符产生的是真值或者假值,因此它们通常和逻辑运算符一起连用。它们也经常被放在一起来讨论的。
关系和逻辑运算符如表格2-4所示。注意:在C++中不相等是用!=来表示的,相等是用==来表示的,两个等号。在C++中,关系或者逻辑表达式的值是布尔类型的。因此,关系或者逻辑表达式的结果要么是true要么是false。
注意:在比较老的编译器中,关系或者逻辑表达式的值为整数0或者1。这种差别只是在学术中差别,因为C++自动地把true转换成1,把false转换成0,反之亦然。
关系运算符的操作数几乎可以使任何类型,只要他们能够进行有意义的比较。逻辑运算符的操作数必须能产生真值true或者假值false。既然任何的非0值都是true,0值是false,这就意味着逻辑运算符可以被用于任何可以产生0值或者非0值的表达式。因此,任何表达式都可以用作逻辑运算符的操作数,结果为void类型的除外。

关系运算符

关系运算符
运算符
含义
>
大于
>=
大于或者等于
<
小于
<=
小于或者等于
==
等于
!=
不等于
逻辑运算符
运算符
含义
&&
AND 与
||
OR 或
!
NOT
表格2-4 C++中的关系和逻辑运算符
逻辑运算符是用来支持基本的逻辑运算AND(与),OR(或),NOT(非),其真值表如下:

p

q
p AND q
p OR q
NOT p
false
false
false
false
true
false
true
false
true
true
true
true
true
true
false
true
false
false
true
false
下面的程序演示了几种关系运算符和逻辑运算符。
#include <iostream>
using namespace std;
int main()
{
int i, j;
bool b1, b2;
i = 10;
j = 11;

if(i < j) cout << "i < j/n";

if(i <= j) cout << "i <= j/n";

if(i != j) cout << "i != j/n";

if(i == j) cout << "this won't execute/n";

if(i >= j) cout << "this won't execute/n";

if(i > j) cout << "this won't execute/n";

b1 = true;
b2 = false;

if(b1 && b2) cout << "this won't execute/n";

if(!(b1 && b2)) cout << "!(b1 && b2) is true/n";

if(b1 || b2) cout << "b1 || b2 is true/n";

return 0;
}

程序的输出如下:
i < j
i <= j
i != j
!(b1 && b2) is true
b1 || b2 is true
关系运算符和逻辑运算符的优先级都低于算术运算符。这就意味着表达式10>1+12和10>(1+12)是等效的,其结果自然是false了。
我们可以使用逻辑运算符吧任意多个关系运算连接起来。例如,下面的例子中是吧三个关系运算用逻辑运算符连接起来了。
var > 15 || !(10 < count ) && 3 <= item
下面的表格列出了关系运算符和逻辑运算符的相对优先级:

最高优先级
!
> >= < <=
== !=
&&
最低优先级
||
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: