C++ 中的 or 运算符

Suraj P 2023年10月12日
  1. C++ 中的逻辑 OR 运算符
  2. C++ 中的按位 OR 运算符
  3. 结论
C++ 中的 or 运算符

本文解释了 C++ 中的 OR 运算符及其用例。与任何其他编程语言一样,C++ 具有逻辑和按位;让我们一一看看。

C++ 中的逻辑 OR 运算符

我们使用逻辑运算符来比较两个或多个操作数/表达式并返回 truefalse 值。这些在决策场景中很有用。

逻辑 OR 使用|| 表示。

语法:

expression1 || expression2

逻辑 OR 运算符||返回:

  1. true - 如果至少一个操作数或表达式为真。
  2. false - 当且仅当所有操作数都是假的。

逻辑 OR``||的真值表。

AB 是操作数。

一种 一种||乙
F F F
F
F

我们只能看到两个操作数都为 false 时;我们得到的输出为。在 C 或 C++ 中,false 是零,true 是任何非零值;一般用整数 1 表示。

例子:

让我们看看如何在决策中使用逻辑 OR。考虑用户输入小写字符并想知道它是元音还是辅音的情况。

#include <iostream>
using namespace std;

int main() {
  char ch;
  cin >> ch;

  if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
    cout << "It's is a VOWEL.";
  } else
    cout << "It's a consonant";
}

如果输入是 zif 语句中的所有 OR 条件都是 false,它被评估为 falseif 条件失败。然后执行 else 块。

输出:

z
It's a consonant

关于逻辑 OR 需要记住的一个有趣属性是,如果左侧部分为 true,则不会评估右侧部分,因为整个表达式现在仍然为 true。

expression1||expression2 中的含义如果 expression1true, expression2 不被计算。

示例代码:

#include <iostream>
using namespace std;

int main() {
  int a = 10;
  int b = (a = a > 5 ? 25 : 0) || 0;

  cout << "Value of a " << a << endl;
  cout << "Value of b " << b << endl;

  // part two
  int x = 9;
  int c = (x = 0) || (x = 6789);

  cout << "Value of x " << x << endl;
  cout << "Value of c " << c << endl;
}

输出:

Value of a 25
Value of b 1
Value of x 6789
Value of c 1

解释:(a=a>5?25:0) 被评估为 true,因为 a 大于 5 并且 25 分配给 a,并且在除 0(false) 之外的 C++ 中,所有值都被视为 true

由于逻辑 OR 的左侧部分是 true,所以不评估右侧;整体表达式值为 true,即 1 并分配给 b

现在是程序的第二部分 c = (x=0) || (x=6789),LHS x=0 意味着它是 false,所以 RHS 被评估 x=6789,因为除零以外的任何值都是 true,整个表达式现在变为 true,并且 1 分配给 c

C++ 中的按位 OR 运算符

一条垂直线|表示按位 OR。逻辑运算符和位运算符的主要区别在于逻辑运算符(&&||!)的结果是 0(false)1(true),但位运算符是一个整数值。

| C 或 C++ 中的 (按位 OR) 将两个数字作为操作数,并对两个数字的每一位执行 OR 并返回结果。

示例代码:

#include <iostream>
using namespace std;

int main() {
  int a = 2;
  int b = 4;

  int c = a || b;  // logical OR

  int d = a | b;  // bitwise OR

  cout << "Value of c " << c << endl;
  cout << "value of d " << d << endl;
}

输出:

Value of c 1
value of d 6

解释:对于 a||b, a=2,一个非零值,被评估为 true,所以 c 的值变成 true

对于 a|b,我们必须首先将 ab 转换为二进制格式,然后对每个位应用 OR,二进制中的 a = 010b = 100,如果我们应用对每一位进行 OR,我们得到输出为 6,分配给变量 d

 0 1 0   this is a=2
 1 0 0    this is b=4
-------
 1 1 0  //this is 6 in decimal
-------

结论

我们在本文中学习了逻辑和按位 OR 运算符。

我们知道逻辑 OR 用于决策,任何非零操作数/表达式都被认为是 1(true),而在按位 OR 中,运算应用于每个位,并且整数值是作为输出返回。

作者: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

相关文章 - C++ Operator