当前位置:嗨网首页>书籍在线阅读

14-关系表达式

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.1.12 关系表达式

计算机不只是机械的数字计数器。它能够对值进行比较,这种能力是计算机决策的基础。在C++中,关系运算符是这种能力的体现。C++提供了6种关系运算符来对数字进行比较。由于字符用其ASCII码表示,因此也可以将这些运算符用于字符。不能将它们用于C-风格字符串,但可用于string类对象。对于所有的关系表达式,如果比较结果为真,则其值将为true,否则为false,因此可将其用作循环测试表达式。(老式实现认为结果为true的关系表达式的值为1,而结果为false的关系表达式为0。)表5.2对这些运算符进行了总结。

表5.2 关系运算符

| 操 作 符 | 含 义 | | :----- | :----- | :----- | :----- | | < | 小于 | | <= | 小于或等于 | | = = | 等于 | | > | 大于 | | >= | 大于或等于 | | != | 不等于 |

这6种关系运算符可以在C++中完成对数字的所有比较。如果要对两个值进行比较,看看哪个值更漂亮或者更幸运,则这里的运算符就派不上用场了。

下面是一些测试示例:

for (x = 20; x > 5; x--) // continue while x is greater than 5
for (x = 1; y != x; ++x) // continue while y is not equal to x
for (cin >> x; x == 0; cin >> x) // continue while x is 0

关系运算符的优先级比算术运算符低。这意味着表达式:

x + 3 > y - 2 // Expression 1

对应于:

(x + 3) > (y - 2) // Expression 2

而不是:

x + (3 > y) - 2 // Expression 3

由于将bool值提升为int后,表达式(3>y)要么为1,要么为0,因此第二个和第三个表达式都是有效的。不过我们更希望第一个表达式等价于第二个表达式,而C++正是这样做的。