Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 논리 연산자


논리 연산자의 개념은 간단합니다. 프로그램이 여러 조건을 기반으로 결정을 내릴 수 있도록 합니다. 각 피연산자는 true 또는 false 값으로 평가될 수 있는 조건으로 간주됩니다. 그런 다음 조건 값을 사용하여 op1 연산자 op2 또는 !op1 그룹화의 전체 값을 결정합니다.

논리 OR 연산자(||)는 피연산자 중 하나 또는 둘 모두가 true이면 부울 값 true를 반환하고 그렇지 않으면 false를 반환합니다. 피연산자는 평가 전에 암시적으로 bool 형식으로 변환되며 결과는 bool 형식입니다. 논리적 OR에는 왼쪽에서 오른쪽으로의 연관성이 있습니다. 논리 OR 연산자에 대한 피연산자는 유형이 같을 필요는 없지만 정수 또는 포인터 유형이어야 합니다. 피연산자는 일반적으로 관계식 또는 같음 식입니다.

첫 번째 피연산자는 완전히 평가되고 모든 부작용은 논리적 OR 표현식의 평가를 계속하기 전에 완료됩니다. 두 번째 피연산자는 첫 번째 피연산자가 false(0)로 평가되는 경우에만 평가됩니다. 이것은 논리적 OR 표현식이 참일 때 두 번째 피연산자의 불필요한 평가를 제거합니다.

논리 AND 연산자(&&)는 두 피연산자가 모두 true이면 부울 값 true를 반환하고 그렇지 않으면 false를 반환합니다. 피연산자는 평가 전에 암시적으로 bool 형식으로 변환되며 결과는 bool 형식입니다. 논리적 AND에는 왼쪽에서 오른쪽으로의 연관성이 있습니다. 논리 AND 연산자에 대한 피연산자는 동일한 유형일 필요는 없지만 정수 또는 포인터 유형이어야 합니다. 피연산자는 일반적으로 관계식 또는 같음 식입니다.

첫 번째 피연산자는 완전히 평가되고 모든 부작용은 논리적 AND 표현식 평가를 계속하기 전에 완료됩니다. 두 번째 피연산자는 첫 번째 피연산자가 true(0이 아님)로 평가되는 경우에만 평가됩니다. 이 평가는 논리 AND 표현식이 거짓일 때 두 번째 피연산자의 불필요한 평가를 제거합니다.

논리 부정 연산자(!)는 피연산자의 의미를 반대로 합니다. 피연산자는 산술 또는 포인터 유형(또는 산술 또는 포인터 유형으로 평가되는 표현식)이어야 합니다. 피연산자는 암시적으로 bool 형식으로 변환됩니다. 변환된 피연산자가 false이면 결과는 true이고, 그렇지 않으면 false입니다. 변환된 피연산자가 true이면 결과는 false입니다. 결과는 bool 유형입니다.

#include<iostream>
using namespace std;
int main() {
   bool x = true, y = false;
   cout << (x || y) << endl;
   cout << (x && y) << endl;
   cout << (!x) << endl;
   return 0;
}

출력

이것은 출력을 줄 것입니다 -

1
0
0

이는 둘 중 하나가 거짓이므로 and는 거짓이고 하나는 참이므로 so or는 참이고 true(x)가 아닌 것은 거짓(즉, 0)이기 때문입니다.