본문 바로가기

C Language/Programming Course

2장 연산자(4부 관계연산자) 첫번째 시간


2장 연산자

4부 관계 연산자

    이번시간에는 관계 연산자에 대해서 알아 보도록 하겠습니다. 
    관계연산자도 앞 연산자와 같이 빠르면 초등학교부터 늦으면 중학교 때 부터 수학시간에
    사용해온 연산자입니다.
    관계 연산자라는 것은 간단하게 말하면 두개의 값을 비교 하는 것입니다.
    즉, 오른쪽이 큰지 왼쪽이 큰지 같은지 다른지를 알아 보는 것입니다. 
   
    연산의 기호들을 보면

    > 기호는 왼쪽이 크다.
    < 기호는 오른쪽이 크다.
    == 기호는 같다.
    != 기호는 다르다.
    >= 기호는 왼쪽이 크거나 같다.
    <= 기호는 오른쪽이 크거나 같다.

    이 기호들이 모두 관계 연산자들의 기호 입니다.

    이 기호는 뒤에 나오는 제어문이나 반복문 쓸때 많이 쓰는데,
    그 제어문이나 반복문을 아직 배우지 않았기 때문에,
    지금은 거기까지는 논하지 않겠습니다.

    수학 시간에 배운 것을 먼저 예로 들어 보면
    5 < 3 
    6 > 7
    이런 식이 나왔으면 
    이 두개의 연산 답은 첫번째는 참, 두번째는 거짓이라는 것을 단번에 알 수 있습니다. 

    그럼 이 연산을 c언어로 돌려보면 

    int a = 5;
    int b = 6;
   
    printf("첫번째 : %d", a < b);
    printf("두번째 : %d", a > b);

    이런 코드를 작성을 하고 실행을 시켜 봅니다. 
    그러면 수학시간에 배운 것 처럼 
  
    첫번째 : 참
    두번째 : 거짓

    이렇게 출력이 될까요!?
    뜻만 본다면 정답입니다. 
    하지만 실제적으로는 위 처럼 출력이 되지는 않습니다. 
    어떻게 출력이 되는지 알기 전에 잠깐 컴퓨터에 대해서 이야기를 해 보겠습니다.

    컴퓨터에서도 참과 거짓이라는게 존재합니다.
    크게 이야기 하면 컴퓨터 자체가 전부 참과 거짓으로 이루어져 있다고도 할 수 있습니다. 
    그 이유는 컴퓨터가 이진수로 이루어져 있다는 것을 알고 있을 것입니다. 
    그래서 우리가 어떤 명령을 내리면 컴퓨터는 그 명령 자체를 이해 하는 것이 아니라
    그 명령에 할당이 되어 있는 이진코드를 이해하고 그 명령을 수행하는 것입니다. 
    예를 들면 "출력하라" 라고 하는 명령을 00100100 이라고 한다면
    사용자가 "출력하라"라고 명령을 내리면 컴퓨터에서는 00100100이라고 인식을 하고
    명령을 실행하는 것입니다. 
    
    다시 말해서 컴퓨터는 이진수만 사용하기에 0과 1밖에 모른다는 것입니다. 
    그래서 모든 것을 0, 1으로만 가능 합니다. 
    이 0과 1을 다르게 표현을 한다면 켜지다 꺼지다 라고도 표현을 할 수 있습니다. 
    불이 켜져 있으면 1 꺼져 있으면 0
    그리고 참과 거짓으로도 나눌 수 있습니다. 
    참이면 1 거짓이면 0
    전부 2가지 경우 밖에 없기때문에 같다고 할 수 있습니다. 

    그리고 C언어에서는 위에서 설명하던 참과 거짓을 실제적으로
    1과 0으로 표현을 하고 있습니다. 
    즉, 
    첫번째 : 1
    두번째 : 0

    이라는 출력이 나오게 된다는 것입니다. 
    이것은 다른 연산자에서도 모두 동일하게 적용이 됩니다. 

    설명이 조금 크게 나갔지만 결론은 여기서 중요한 것은
    코드를 작성하다가 보면  
    아까 말했던 제어문이나 반복문 등에서 참과 거짓이 필요할 경우가 있습니다.
    그래서 참은 1이고 거짓은 0이다
    이 부분만을 확실히 알고 연산 자체는 수학과 다른 부분이 없기 때문에
    무난하게 넘어 갈 수 있을 것이라고 생각합니다.

    다음 시간에는 증감연산자에 대해서 배워 보도록 하겠습니다.

관계 연산을 사용한 예제
===========================================   
    #include <stdio.h>
   
    int main()
    {
        int integer1 = 1;
        int integer2 = 2;
       
        printf("결과 : %d\n", integer1 < integer2);
        printf("결과 : %d\n", integer1 <= integer2);
        printf("결과 : %d\n", integer1 > integer2);
        printf("결과 : %d\n", integer1 >= integer2);
        printf("결과 : %d\n", integer1 == integer2);
        printf("결과 : %d\n", integer1 != integer2);

        return 0;
    }
===========================================