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
中,運算應用於每個位,並且整數值是作為輸出返回。