본문 바로가기
프로그래밍언어/C언어[초급]

[C언어][초급] Chapter17. 관계 연산자 – 참인지 거짓인지 판단하는 도구

by about_IT 2025. 4. 16.

프로그래밍에서 "이 값이 크다", "같다", "작다"처럼 두 값을 비교하는 작업은 매우 자주 사용됩니다.
예를 들어 나이가 20세 이상인지 확인하거나, 점수가 90점 이상인지 판단하는 조건문을 만들려면 관계 연산자가 필요하죠.

이번 글에서는 C언어의 **관계 연산자(Relational Operators)**에 대해 알아보고, 각각의 의미와 사용법을 간단한 예제와 함께 정리해보겠습니다.


● 관계 연산자란?

관계 연산자는 두 값을 비교하여 참(1) 또는 거짓(0) 중 하나의 값을 반환하는 연산자입니다.

즉, 어떤 조건이 맞는지 아닌지 판단하는 데 쓰이며, 조건문(if문 등)의 핵심 요소가 됩니다.


● 관계 연산자의 종류


연산자 의미 예시  코드결과
== 같다 a == b a와 b가 같으면 1, 아니면 0
!= 같지 않다 a != b a와 b가 다르면 1
> 크다 a > b a가 b보다 크면 1
< 작다 a < b a가 b보다 작으면 1
>= 크거나 같다 a >= b a가 b 이상이면 1
<= 작거나 같다 a <= b a가 b 이하이면 1

● 사용 예제

int a = 10, b = 5;

printf("%d\n", a > b);   // 출력: 1
printf("%d\n", a < b);   // 출력: 0
printf("%d\n", a == b);  // 출력: 0
printf("%d\n", a != b);  // 출력: 1

관계 연산자는 **비교 결과를 1(참), 0(거짓)**으로 반환하기 때문에 printf로 출력하면 숫자로 확인할 수 있어요.


● 관계 연산자는 주로 어디서 쓰일까?

관계 연산자는 단독으로도 쓸 수 있지만, 조건문이나 반복문과 함께 쓰일 때 가장 빛을 발합니다.

int age = 20;

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

이런 식으로 특정 조건을 기준으로 프로그램의 흐름을 제어할 수 있게 해줍니다.


● 주의할 점

  • ==와 =는 완전히 다릅니다!
    • ==는 관계 연산자 (같은지 비교)
    • =는 대입 연산자 (값을 저장)
if (a = b) // ← 의도와 다르게 항상 b의 값을 조건으로 사용함 (주의!)

 

  • 관계 연산의 결과는 int형 0 또는 1입니다.
    • true, false 키워드를 쓰는 다른 언어와 달리, C언어는 0=거짓, 1=참의 정수로 처리합니다.
  • 실수형 비교 시 오차에 주의하세요
float a = 0.1 + 0.2;
if (a == 0.3)  // → 거짓일 수 있음 (부동소수점 오차)

 


관계 연산자는 프로그램이 조건에 따라 판단하고 행동하게 만드는 핵심 요소입니다.
==, !=, <, >, <=, >= 이 여섯 가지 기호만 정확히 기억하고, 비교 결과가 참이면 1, 거짓이면 0이라는 구조만 익히면 어렵지 않아요.


실습 문제

아래 문제는 직접 코드를 작성해보고, 실행 결과를 확인한 후 스스로 정답을 유추해보는 형태입니다.

정답은 바로 아래에서 확인할 수 있습니다.

 

문제 1

정수형 변수 a = 7, b = 10이 있을 때, a < b의 결과를 출력하는 코드를 작성하세요.

 

문제 2

다음 코드의 출력 결과는 무엇일까요?

int x = 5;
int y = 5;
printf("%d\n", x == y);

 

문제 3

변수 score가 60 이상일 때 "합격"을 출력하는 조건문을 작성해보세요.

 

문제 4

다음 코드에서 잘못된 부분이 있다면 고쳐보세요.

int a = 3, b = 5;
if (a = b) {
    printf("같다");
}

 

문제 5

아래 중 참(1)이 되는 비교를 모두 고르세요.

A. 4 > 2
B. 7 <= 6
C. 9 != 9
D. 5 == 5







▶ 정답 확인하기

정답 1

int a = 7, b = 10;
printf("%d\n", a < b);  // 출력: 1

 

정답 2

출력 결과: 1  
설명: 두 값이 같으므로 비교 결과는 참 → 1

 

정답 3

int score = 65;
if (score >= 60) {
    printf("합격\n");
}

 

정답 4

// 잘못된 부분: = (대입) → == (비교)로 고쳐야 함
if (a == b) {
    printf("같다");
}

 

정답 5

정답: A, D

  • A: 4 > 2 → 참
  • B: 7 <= 6 → 거짓
  • C: 9 != 9 → 거짓
  • D: 5 == 5 → 참