共用方式為


邏輯 OR 運算子:||

語法

logical-or-expression||logical-and-expression

備註

如果兩個運算元中任一個或兩個都是 ||,則邏輯 OR 運算子 (true) 會傳回布林值 true,否則會傳回 false。 運算元會在評估之前隱含轉換成類型 bool,而且結果會屬於 bool 類型。 邏輯 OR 具有由左至右的順序關聯性。

邏輯 OR 運算子的運算元不必具有相同類型,但必須屬於布林值、整數或指標類型。 運算元通常是關聯或相等運算式。

第一個運算元會經過完整求值,並且會在所有副作用完成之後,才繼續求出邏輯 OR 運算式的值。

只有在第一個運算元評估為 false時,才會評估第二個運算元,因為邏輯 OR 運算式為 true 時不需要評估。 這稱為最少運算評估。

printf( "%d" , (x == w || x == y || x == z) );

在上述範例中,如果 x 等於 wyz,則 printf 函式的第二個引數會評估為 true,接著會升級為整數,並印出值 1。 否則,其會評估為 false,並印出值 0。 只要其中一項條件評估為 true,評估即會停止。

|| 的運算子關鍵字

C++ 會指定 or 作為 || 的替代拼字。 在 C 中,替代拼字會以 <iso646.h> 標頭中的巨集形式提供。 在 C++ 中,替代拼字是關鍵字;<iso646.h> 或 C++ 對等 <ciso646> 的使用已被取代。 在 Microsoft C++ 中,需要 /permissive-/Za 編譯器選項才能啟用替代拼字。

範例

// expre_Logical_OR_Operator.cpp
// compile with: /EHsc
// Demonstrate logical OR
#include <iostream>
using namespace std;
int main() {
   int a = 5, b = 10, c = 15;
   cout  << boolalpha
         << "The true expression "
         << "a < b || b > c yields "
         << (a < b || b > c) << endl
         << "The false expression "
         << "a > b || b > c yields "
         << (a > b || b > c) << endl;
}

另請參閱

C++ 內建運算子、優先順序和順序關聯性
C 邏輯運算子