論理 OR 演算子: ||
構文
logical-or-expression
||
logical-and-expression
解説
論理 OR 演算子 (||
) は、どちらかのオペランドまたは両方のオペランドが true
の場合はブール値 true
を返し、それ以外の場合は false
を返します。 オペランドは、評価前に bool
型に暗黙的に変換され、結果は bool
型になります。 論理 OR の結合規則は左から右です。
論理 OR 演算子のオペランドは、同じ型である必要はありませんが、ブール型、整数型、またはポインター型である必要があります。 オペランドは一般に関係式または等価式です。
最初のオペランドが完全に評価され、すべての副作用が完了した後で、論理 OR 式の評価が続行されます。
2 番目のオペランドは、最初のオペランドが false
と評価された場合にのみ評価されます。これは、論理 OR 式が true
の場合、評価は必要ないためです。 これは、"ショートサーキット" 評価と呼ばれます。
printf( "%d" , (x == w || x == y || x == z) );
上の例では、x
が w
、y
、または z
と等しい場合、printf
関数の 2 番目の引数が true
と評価され、整数に昇格されて、値 1 が出力されます。 それ以外の場合は、false
と評価され、値 0 が出力されます。 条件の 1 つが 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;
}
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示