C++ 中的 or 运算符
本文解释了 C++ 中的 OR
运算符及其用例。与任何其他编程语言一样,C++ 具有逻辑或
和按位或
;让我们一一看看。
C++ 中的逻辑 OR
运算符
我们使用逻辑运算符来比较两个或多个操作数/表达式并返回 true
或 false
值。这些在决策场景中很有用。
逻辑 OR
使用||
表示。
语法:
expression1 || expression2
逻辑 OR
运算符||
返回:
true
- 如果至少一个操作数或表达式为真。false
- 当且仅当所有操作数都是假的。
逻辑 OR``||
的真值表。
A
和 B
是操作数。
一种 | 乙 | 一种||乙 |
---|---|---|
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";
}
如果输入是 z
,if
语句中的所有 OR
条件都是 false
,它被评估为 false
,if
条件失败。然后执行 else
块。
输出:
z
It's a consonant
关于逻辑 OR
需要记住的一个有趣属性是,如果左侧部分为 true
,则不会评估右侧部分,因为整个表达式现在仍然为 true。
expression1||expression2
中的含义如果 expression1
为 true
, 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
,我们必须首先将 a
和 b
转换为二进制格式,然后对每个位应用 OR
,二进制中的 a = 010
和 b = 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
中,运算应用于每个位,并且整数值是作为输出返回。