논리적 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
가 w
, 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;
}