언어 자료구조 알고리즘/디딤돌 C언어

31. 비교 연산자

언제나휴일 2016. 1. 1. 12:04
반응형

 

<,< =, >, >= , ==, !=
 
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;
}
 


[정답] 디딤돌 C언어 31. 비교 연산자




반응형