C++ 初学者指南 第二篇(6)
来源:互联网 发布:raphael.js 下载 编辑:程序博客网 时间:2024/05/01 20:13
必备技能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
下面的表格列出了关系运算符和逻辑运算符的相对优先级:
最高优先级
!
> >= < <=
== !=
&&
最低优先级
||
- C++ 初学者指南 第二篇(6)
- C+++初学者指南+第六篇(6)
- C++ 初学者指南 第二篇(1)
- C++ 初学者指南 第二篇(2)
- C++ 初学者指南 第二篇(3)
- C++ 初学者指南 第二篇(4)
- C++ 初学者指南 第二篇(5)
- C++ 初学者指南 第二篇(7)
- C++ 初学者指南 第二篇(8)
- C++ 初学者指南 第二篇(9)
- C++ 初学者指南 第二篇(10)
- C++ 初学者指南 第二篇(11)
- C++ 初学者指南 第二篇(12)
- C++ 初学者指南 第二篇(13)
- C++ 初学者指南 第二篇(14)
- C++ 初学者指南 第二篇(15)
- C+++初学者指南+第六篇(5)
- C+++初学者指南+第六篇(7)
- DNA片段装配算法
- fedora12 下安装飞信
- install kde on ubuntu 9。04
- 杂交测序(SBH)
- 蓝屏
- C++ 初学者指南 第二篇(6)
- 任务栏隐藏的实质
- cvarray错误异常
- 用 CRC32 算法实现程序自校验
- asp.net页面生命周期也称执行顺序
- Ubuntu MP3播放器列表乱码
- 花魂
- UML中的几个关系
- 第4章 SNMP网络管理体系结构