[C++] 비교 연산자, 논리 연산자

2022. 6. 2. 12:08♣ C++

이번 포스팅에선 C++의 비교 연산자와 논리 연산자에 대해 알아보자.

비교 연산자: 피연산자 사이의 상대적인 크기를 판단하는 연산자

논리 연산자: 주어진 논리식을 판단하여, 참과 거짓을 결정하는 연산자

 

개발 환경 : VSCode, Windows 10

 

 

 

 

 

기본 개발 세팅은 다음과 같습니다.

#include <iostream>
#include <string.h>
using namespace std;

int main()

{    
    // 연산자
    int num1 = 10;
    int num2 = 4;
    cout << "연산자 예시 \n";
}

 

 

 

 

 

 

 

비교 연산자


비교 연산자는 피연산자 사이의 크기를 비교하는 연산자다.
A와 B 중 어느 것이 더 큰가?/작은가?/같은가? 를 판단한다고 생각하면 된다.

True라면 1을, False라면 0을 반환한다.

종류: ==, >=, <=, !=, <, >

 

 

 

!=, 같지 않다

 

int main()

{    
    // 대입 연산자
    int num1 = 10;
    int num2 = 4;
    cout << "!= 연산자의 결과값은 " << (num1 != num2) << " 입니다." << endl;
}

 

결과

!= 연산자의 결과값은 1 입니다.

10과 4는 같지 않으므로 1(True)을 반환했다.

 

 

 

 

==, 같다

 

int main()

{    
    // 대입 연산자
    int num1 = 10;
    int num2 = 4;
    cout << "== 연산자의 결과값은 " << (num1 == num2) << " 입니다." << endl;
}

 

결과

== 연산자의 결과값은 0 입니다.

10과 4는 같지 않으므로 0(False)을 반환했다.

 

 

 

 

 

>, 왼쪽이 더 크다

 


int main()

{    
    // 대입 연산자
    int num1 = 10;
    int num2 = 4;
    cout << "> 연산자의 결과값은 " << (num1 > num2) << " 입니다." << endl;
}


결과

> 연산자의 결과값은 1 입니다.

10이 4보다 크므로 1(True)을 반환했다.

 

 

 

 

>=, 왼쪽이 크거나 같다

 

int main()

{    
    // 대입 연산자
    int num1 = 10;
    int num2 = 4;
    cout << ">= 연산자의 결과값은 " << (num1 >= num2) << " 입니다." << endl;
}

 

결과

>= 연산자의 결과값은 1 입니다.

10이 4보다 크므로 1(True)을 반환했다.

 

 

 

 

 

 

논리 연산자


주어진 논리식을 판단하여, 참과 거짓을 결정하는 연산자이다.

AND, OR, NOT 이 존재하며, True인 경우 1을 반환하고 False인 경우 0을 반환한다.

 

 

&&

A와 B가 모두 True이다.

ex) A && B

왼쪽과 오른쪽 논리식이 모두 True일 때만 1을 반환합니다.

 

int main()

{    
    // 대입 연산자
    int num1 = 10;
    int num2 = 4;
    bool result1, result2, result3;
    result1 = (num1+4 > num2*30) && (num2 >= 4);
    cout << "&& 연산자의 결과값은 " << result1 << " 입니다." << endl;
}

 

결과

&& 연산자의 결과값은 0 입니다.

num1+4 > num2*30는 False이며,  num2 >= 4는 True이다. 둘 중 하나만 True이기에 0을 반환합니다.

 

 

 

 

||

A 혹은 B가 True이다.

ex) A || B

왼쪽 논리식과 오른쪽 논리식 중 하나만 True여도 1을 반환합니다.

 

int main()

{    
    // 대입 연산자
    int num1 = 10;
    int num2 = 4;
    bool result1, result2, result3;
    result1 = (num1+4 > num2*30) || (num2 >= 4);
    cout << "|| 연산자의 결과값은 " << result1 << " 입니다." << endl;
}

 

결과

|| 연산자의 결과값은 1 입니다.

num1+4 > num2*30 은 False이지만, num2 >= 4는 True이므로 1을 반환했습니다.

 

 

 

 

!

A는 참이 아니다.

ex) !A

주어진 논리식이 참이 아닐 경우, 1을 반환합니다.

 

int main()

{    
    // 대입 연산자
    int num1 = 10;
    int num2 = 4;
    bool result1, result2, result3;
    result1 = (num1+4 > num2*30) || (num2 >= 4);
    cout << "! 연산자의 결과값은 " << !result1 << " 입니다." << endl;
}

 

결과

! 연산자의 결과값은 0 입니다.

result1은 본래 True이므로, ! 연산자를 적용했을 때 0을 반환했습니다.

 

 

 

 

지금까지 비교 연산자와 논리 연산자에 대해 알아보았습니다.

다음 포스팅에선 비트 연산자와 기타 연산자에 대해 다뤄보도록 하겠습니다.