C++ 中的 or 運算子

Suraj P 2023年1月30日 2022年4月20日
  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 中,運算應用於每個位,並且整數值是作為輸出返回。

Author: 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