C++ 关系运算符和逻辑运算符

在 C++ 中,关系运算符和逻辑运算符比较两个或多个操作数,并返回 truefalse 值。

我们在决策制定时使用这些运算符。


C++ 关系运算符

关系运算符用于检查两个操作数之间的关系。例如,

// checks if a is greater than b
a > b;

在这里,> 是一个关系运算符。它检查 a 是否大于 b

如果关系为,则返回1,如果关系为,则返回0

下表总结了 C++ 中使用的关系运算符。

运算符 含义 示例
== 等于 3 == 5 的结果是false
!= 不等于 3 != 5 的结果是true
> 大于 3 > 5 的结果是false
< 小于 3 < 5 的结果是true
>= 大于或等于 3 >= 5 的结果是false
<= 小于或等于 3 <= 5 的结果是true

== 运算符

等于 == 运算符返回

  • true - 如果两个操作数相等或相同
  • false - 如果操作数不相等

例如,

int x = 10;
int y = 15;
int z = 10;

x == y   // false
x == z   // true

注意:关系运算符 == 与赋值运算符 = 不同。赋值运算符 = 将值赋给变量、常量、数组或向量。它不比较两个操作数。


!= 运算符

不等于 != 运算符返回

  • true - 如果两个操作数不相等
  • false - 如果两个操作数相等。

例如,

int x = 10;
int y = 15;
int z = 10;

x != y   // true
x != z   // false

> 运算符

大于 > 运算符返回

  • true - 如果左操作数大于右操作数
  • false - 如果左操作数小于右操作数

例如,

int x = 10;
int y = 15;

x > y   // false
y > x   // true

< 运算符

小于运算符 < 返回

  • true - 如果左操作数小于右操作数
  • false - 如果左操作数大于右操作数

例如,

int x = 10;
int y = 15;

x < y   // true
y < x   // false

>= 运算符

大于或等于 >= 运算符返回

  • true - 如果左操作数大于或等于右操作数
  • false - 如果左操作数小于右操作数

例如,

int x = 10;
int y = 15;
int z = 10;

x >= y   // false
y >= x   // true
z >= x   // true

<= 运算符

小于或等于运算符 <= 返回

  • true - 如果左操作数小于或等于右操作数
  • false - 如果左操作数大于右操作数

例如,

int x = 10;
int y = 15;

x > y   // false
y > x   // true

要了解关系运算符如何与字符串一起使用,请参阅我们的教程。

C++ 逻辑运算符

我们使用逻辑运算符来检查表达式是还是。如果表达式为,则返回1,如果表达式为,则返回0

运算符 示例 含义
&& expression1 && expression 2 逻辑与。
仅当所有操作数都为真时才为真。
|| expression1 || expression 2 逻辑或。
只要有一个操作数为真,则为真。
! !expression 逻辑非。
仅当操作数为假时才为真。

C++ 逻辑与运算符

逻辑与运算符 && 返回

  • true - 当且仅当所有操作数都为 true
  • false - 如果一个或多个操作数false

&& 运算符的真值表

ab 为两个操作数。0 表示,而 1 表示。那么,

a b a && b
0 0 0
0 1 0
1 0 0
1 1 1

从上面的真值表可以看出,仅当 ab 都为真时,&& 运算符才返回 true。

注意:逻辑与运算符 && 不应与按位与运算符 & 混淆。


示例 1:C++ OR 运算符

// C++ program demonstrating && operator truth table

#include <iostream>
using namespace std;

int main() {
    int a = 5;
    int b = 9;
  
    // false && false = false
    cout << ((a == 0) && (a > b)) << endl;
  
    // false && true = false
    cout << ((a == 0) && (a < b)) << endl;

    // true && false = false
    cout << ((a == 5) && (a > b)) << endl;

    // true && true = true
    cout << ((a == 5) && (a < b)) << endl;

    return 0;
}

输出

0
0
0
1

在此程序中,我们声明并初始化两个 int 变量 ab,分别赋值为 59。然后我们打印一个逻辑表达式

((a == 0) && (a > b))

这里,a == 0 的计算结果为 false,因为 a 的值为 5a > b 也为 false,因为 a 的值小于 b。然后我们使用 AND 运算符 && 来组合这两个表达式。

&& 运算符的真值表可知,false && false(即 0 && 0)的计算结果为 false0)。这就是我们在输出中得到的结果。

同样,我们计算了另外三个完全演示 && 运算符真值表的表达式。


C++ 逻辑或运算符

逻辑或运算符 || 返回

  • true - 如果一个或多个操作数为 true
  • false - 当且仅当所有操作数都为 false

|| 运算符的真值表

ab 为两个操作数。那么,

a b a || b
0 0 0
0 1 1
1 0 1
1 1 1

从上面的真值表可以看出,仅当 ab 都为 false 时,|| 运算符才返回 false。


示例 2:C++ OR 运算符

// C++ program demonstrating || operator truth table

#include <iostream>
using namespace std;

int main() {
    int a = 5;
    int b = 9;
  
    // false && false = false
    cout << ((a == 0) || (a > b)) << endl;
  
    // false && true = true
    cout << ((a == 0) || (a < b)) << endl;

    // true && false = true
    cout << ((a == 5) || (a > b)) << endl;

    // true && true = true
    cout << ((a == 5) || (a < b)) << endl;

    return 0;
}

输出

0
1
1
1

在此程序中,我们声明并初始化两个 int 变量 ab,分别赋值为 59。然后我们打印一个逻辑表达式

((a == 0) || (a > b))

这里,a == 0 的计算结果为 false,因为 a 的值为 5a > b 也为 false,因为 a 的值小于 b。然后我们使用 OR 运算符 || 来组合这两个表达式。

|| 运算符的真值表可知,false || false(即 0 || 0)的计算结果为 false0)。这就是我们在输出中得到的结果。

同样,我们计算了另外三个完全演示 || 运算符真值表的表达式。


C++ 逻辑非运算符 !

逻辑非运算符 ! 是一个一元运算符,即它只有一个操作数。

当操作数为 false 时,它返回 true;当操作数为 true 时,它返回 false

! 运算符的真值表

a 为一个操作数。那么,


示例 3:C++ ! 运算符

// C++ program demonstrating ! operator truth table
#include <iostream>
using namespace std;

int main() {
    int a = 5;
  
    // !false = true
    cout << !(a == 0) << endl;

    // !true = false
    cout << !(a == 5) << endl;

    return 0;
}

输出

1
0

在此程序中,我们声明并初始化一个 int 变量 a,值为 5。然后我们打印一个逻辑表达式

!(a == 0) 

这里,a == 0 的计算结果为 false,因为 a 的值为 5。然而,我们在 a == 0 上使用了 NOT 运算符 !。由于 a == 0 的计算结果为 false,所以 ! 运算符会反转 a == 0 的结果,最终结果为 true

同样,表达式 !(a == 5) 的最终结果为 false,因为 a == 5true

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战