본문 바로가기
C

C언어 연산자(관계연산자 / 논리연산자)

by 규우울 2021. 12. 21.
반응형

관계 연산자

 

프로그래밍을 하다 보면 조건에 따라서 값을 다르게 설정해야 하는 경우가 있습니다.

 

예를 들어 뷔페에 갔을 경우 나이가 7세 미만이면 5,000원 그 이상이면 10,000원 이런 식으로 말이죠

 

이렇게 특정 기준을 프로그래밍할 때 필요한 것이 관계 연산자입니다.

 

관계 연산자에는 대소 관계 연산자, 동등 관계 연산자가 있습니다.

 

대소 관계 연산자는 >, < 와 같은 크다와 작다를 나타내는 것이고 동등 관계 연산자는 ==,!=과 같은 같다와 다르다를 나타내는 것입니다.

 

이 것들의 결과 값은 2개가 있는데 참 (1)과 거짓(0)입니다.

 

#include <stdio.h>

int main(void)
{
    int a, b;
    a = 10;
    b = 20;
    int res;
    res = (a > b);
    printf("%d", res);
    return 0;
    
}

이렇게  10 > 20이라고 하면 당연히 값은 거짓이니 0이 나옵니다.

 

그러면 이번에는 1을 출력해볼까요??

등호만 반대로 돌리니 1을 잘 출력했습니다.

 

논리 연산자

 

논리 연산자도 위에서 본 관계 연산자처럼 0과 1을 출력하는 연산자입니다.

 

참(1)과 거짓(0)을 판별하는 데 쓰이고 AND(&&), OR(||), NOT(!) 이렇게 3개가 있습니다.

 

AND는 피 연산자가 모두 참이어야만 참이 되고

 

OR은 피연산자 중 1개만 참이 있어도 참이 됩니다. 

 

그리고 NOT은 참과 거짓을 바꿀 경우에 사용하게 됩니다.

 

예를 들어보겠습니다.

 

#include <stdio.h>

int main(void)
{
    int a, b, c, d;
    a = 10;
    b = 20;
    c = 30;
    d = 40;
    int res;
    res = (a < b) && (c < d);
    printf("%d", res);
    return 0;
    
}

10 < 20 && 30 <40

둘 다 참이므로 값도 당연히 참이 나옵니다.

 

하지만 30 > 40으로 바꾸면 어떻게 될까요??

 

AND(&&)를 사용했기 때문에 당연히 거짓이 됩니다.

 

그러면 이제 &&를 ||로 바꿔보겠습니다.

 

#include <stdio.h>

int main(void)
{
    int a, b, c, d;
    a = 10;
    b = 20;
    c = 30;
    d = 40;
    int res;
    res = (a < b) || (c < d);
    printf("%d", res);
    return 0;
    
}

10 < 20이 참이니 뒤에가 거짓이라도 참이 나와줬습니다.

 

이상 관계 연산자와 논리 연산자에 대해서 알아봤습니다. 감사합니다.

반응형

'C' 카테고리의 다른 글

C언어 switch / case 사용 방법  (0) 2022.01.17
C언어 if문  (0) 2021.12.26
C언어 연산자(산술 연산자/ 대입 연산자/ 증감 연산자)  (0) 2021.12.15
C언어 input값 출력하기 (scanf)  (0) 2021.12.12
C언어 식별자 사용 규칙  (0) 2021.12.12

댓글