다음을 통해 공유


논리적 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) );

위의 예에서 xw, y 또는 z와 같은 경우 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 논리 연산자