C언어 초급 - 5장: 연산자와 표현식 (5.3 관계 연산자 (==, !=, >, <, >=, <=))

2025. 2. 23. 16:51프로그래밍 언어/C

5.3 관계 연산자 (==, !=, >, <, >=, <=)

관계 연산자(Relational Operators)는 두 값을 비교하여 참(true) 또는 거짓(false)을 반환하는 연산자입니다.
이 연산자는 조건문(if, while, for 등)에서 자주 사용됩니다.


1. 참(true)과 거짓(false)의 개념

1.1 C 언어에서의 참과 거짓

  • C 언어에서 참(true)은 0이 아닌 모든 값을 의미합니다.
  • 거짓(false)은 0을 의미합니다.

📌 예제

#include <stdio.h>

int main() {
    int a = 10, b = 20;

    printf("a > b 결과: %d\n", a > b);  // 거짓(0)
    printf("a < b 결과: %d\n", a < b);  // 참(1)
    printf("a == 10 결과: %d\n", a == 10);  // 참(1)
    printf("b != 20 결과: %d\n", b != 20);  // 거짓(0)

    return 0;
}

출력 결과

a > b 결과: 0
a < b 결과: 1
a == 10 결과: 1
b != 20 결과: 0

📌 설명

  • a > b → 10 > 20 → false(0)
  • a < b → 10 < 20 → true(1)
  • a == 10 → true(1)
  • b != 20 → false(0)

2. 관계 연산자의 종류

연산자  설명 예제 (a = 10, b = 20) 결과
== 두 값이 같은지 비교 a == b 0 (false)
!= 두 값이 다른지 비교 a != b 1 (true)
> 왼쪽 값이 더 큰지 비교 a > b 0 (false)
< 왼쪽 값이 더 작은지 비교 a < b 1 (true)
>= 왼쪽 값이 크거나 같은지 비교 a >= b 0 (false)
<= 왼쪽 값이 작거나 같은지 비교 a <= b 1 (true)

3. 관계 연산자 예제

3.1 기본 관계 연산자 예제

#include <stdio.h>

int main() {
    int x = 15, y = 10;

    printf("x == y : %d\n", x == y);  // 0 (false)
    printf("x != y : %d\n", x != y);  // 1 (true)
    printf("x > y  : %d\n", x > y);   // 1 (true)
    printf("x < y  : %d\n", x < y);   // 0 (false)
    printf("x >= y : %d\n", x >= y);  // 1 (true)
    printf("x <= y : %d\n", x <= y);  // 0 (false)

    return 0;
}

출력 결과

x == y : 0
x != y : 1
x > y  : 1
x < y  : 0
x >= y : 1
x <= y : 0

📌 설명

  • x == y → 15 == 10 → false(0)
  • x != y → 15 != 10 → true(1)
  • x > y → 15 > 10 → true(1)
  • x < y → 15 < 10 → false(0)

4. 관계 연산자의 활용

4.1 조건문에서 관계 연산자 사용

관계 연산자는 보통 if 문과 함께 사용하여 조건을 판단하는 데 활용됩니다.

#include <stdio.h>

int main() {
    int age;

    printf("나이를 입력하세요: ");
    scanf("%d", &age);

    if (age >= 18) {
        printf("성인입니다.\n");
    } else {
        printf("미성년자입니다.\n");
    }

    return 0;
}

실행 예시

나이를 입력하세요: 20
성인입니다.
나이를 입력하세요: 15
미성년자입니다.

📌 설명

  • if (age >= 18) → age가 18 이상이면 "성인입니다." 출력.
  • else → age가 18 미만이면 "미성년자입니다." 출력.

4.2 최대값 구하기

관계 연산자를 사용하여 두 수 중 큰 값을 판별하는 프로그램을 작성할 수 있습니다.

#include <stdio.h>

int main() {
    int a, b;

    printf("두 개의 정수를 입력하세요: ");
    scanf("%d %d", &a, &b);

    if (a > b) {
        printf("더 큰 값: %d\n", a);
    } else {
        printf("더 큰 값: %d\n", b);
    }

    return 0;
}

실행 예시

두 개의 정수를 입력하세요: 10 20
더 큰 값: 20
두 개의 정수를 입력하세요: 50 25
더 큰 값: 50

📌 설명

  • if (a > b) → a가 b보다 크면 a 출력.
  • 그렇지 않으면 b 출력.

4.3 범위 검사

관계 연산자를 조합하여 변수가 특정 범위에 속하는지 확인할 수 있음.

#include <stdio.h>

int main() {
    int score;

    printf("점수를 입력하세요: ");
    scanf("%d", &score);

    if (score >= 0 && score <= 100) {
        printf("올바른 점수입니다.\n");
    } else {
        printf("잘못된 점수입니다.\n");
    }

    return 0;
}

실행 예시

점수를 입력하세요: 85
올바른 점수입니다.
점수를 입력하세요: 150
잘못된 점수입니다.

📌 설명

  • if (score >= 0 && score <= 100) → 점수가 0~100 사이에 있으면 "올바른 점수".
  • 그렇지 않으면 "잘못된 점수".

5. 정리

연산자 설명 예제  결과 (x = 10, y = 20)
== 두 값이 같은지 비교 x == y 0 (false)
!= 두 값이 다른지 비교 x != y 1 (true)
> 왼쪽 값이 더 큰지 비교 x > y 0 (false)
< 왼쪽 값이 더 작은지 비교 x < y 1 (true)
>= 왼쪽 값이 크거나 같은지 비교 x >= y 0 (false)
<= 왼쪽 값이 작거나 같은지 비교 x <= y 1 (true)

📌 관계 연산자의 특징

  • 결과는 참(1) 또는 거짓(0).
  • 조건문(if, while)에서 자주 사용됨.
  • &&(AND), ||(OR)과 함께 사용하면 더 복잡한 조건식 표현 가능.