31. 비교 연산자

<,< =, >, >= , ==, !=

C언어에서 비교 연산은 이항 연산자로 피연산자의 값의 크기를 비교하며 연산 결과는 참일 때 1, 거짓일 때 0이예요.

연산자를 보면 쉽게 알 수 있듯이 < 는 우항이 작은지 비교, <= 우항이 작거나 같은지 비교, > 우항이 큰지 비교, >= 우항이 크거나 같은지 비교, == 서로 같은지 비교, != 다른지 비교하는 연산자예요.
그리고 <=, >=, ==, != 연산자를 사용할 때 중간에 공백은 올 수 없어요.

◈ 비교 연산

#include <stdio.h>
int main()
{
    printf("1<2  연산 결과:%d \n", 1<2);
    printf("1<=2 연산 결과:%d \n", 1<=2);
    printf("1>2  연산 결과:%d \n", 1>2);
    printf("1>=2 연산 결과:%d \n", 1>=2);
    printf("1==2 연산 결과:%d \n", 1==2);
    printf("1!=2 연산 결과:%d \n", 1!=2);
    return 0;
}

◈ 실행 결과

1<2  연산 결과:1 
1<=2 연산 결과:1 
1>2  연산 결과:0 
1>=2 연산 결과:0 
1==2 연산 결과:0 
1!=2  연산 결과:1

비교 연산에서 주의할 점은 2<1<3 처럼 비교 연산하면 결과는 수학과 다를 수 있어요.
C언어에서 2<1<3을 계산할 때는 2<1을 먼저 계산한 후에 1과 비교 연산을 수행해요.
2<1의 연산 결과는 거짓이므로 0 이고, 0(2<1의 연산 결과)<3은 참이므로 연산 결과는 1이예요.

따라서 수학에서 2<1<3 계산을 C언어로 작성할 때는 (2<1)&&(1<3)처럼 논리곱 연산을 사용하세요.

◈ 비교 연산을 사용할 때 주의할 점

#include <stdio.h>
int main()
{
    printf("2<1<3 연산 결과: %d \n", 2<1<3);
    printf("(2<1) && (1<3) 연산 결과: %d \n", (2<1) && (1<3) );
    return 0;
}

◈ 실행 결과

2<1<3 연산 결과: 1
(2<1) && (1<3) 연산 결과: 0

◈ 기본 연습(정답 바로가기)
다음 프로그램의 출력 결과를 예측하고 이유를 설명하시오.

#include <stdio.h>
int main()
{
    printf("%d \n", 5<2<4);
    printf("%d \n", (5<2)&&(2<4));
    return 0;
}