프로그래밍언어/C언어[초급]

[C언어][초급] Chapter22. 조건문 – if문 사용법과 기본 구조

about_IT 2025. 4. 16. 19:57

특정 조건이 맞을 때만 실행되게 하고 싶다면?
프로그래밍은 단순히 순서대로 실행되는 것이 아니라, 어떤 조건에 따라 다르게 동작해야 할 때가 많습니다.
예를 들어, "점수가 60점 이상이면 합격이라고 출력하기", "나이가 20세 이상이면 입장 가능" 등등.

이렇게 조건에 따라 실행 여부를 결정하는 것을 “조건 분기”라고 하며, 그 중심에 있는 것이 바로 if문입니다.


● if문이란?

if문은 **주어진 조건이 참(true)**일 때에만 특정 코드를 실행하도록 만드는 조건문입니다.

if (조건식) {
    // 조건이 참일 때 실행할 코드
}

● 가장 기본적인 형태

 
int score = 80;

if (score >= 60) {
    printf("합격입니다.\n");
}
  • score >= 60이라는 조건이 이면 블록 안의 printf가 실행되고,
  • 거짓이면 아무 일도 일어나지 않습니다.

● 조건식의 결과는 0(거짓) 또는 1(참)

  • 조건식이 0이면 거짓(false) → 실행 안 함
  • 조건식이 0이 아닌 수(보통 1)이면 참(true) → 실행함

● 중괄호 생략 가능?

if문 바로 아래 코드가 한 줄뿐이라면 중괄호 {}는 생략 가능합니다.

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

하지만 여러 줄이거나 중첩 if문이 있을 경우, 생략은 버그의 원인이 될 수 있으니 괄호 쓰는 습관이 안전합니다.


● 예제: 숫자가 양수인지 판별

int num = -3;

if (num > 0) {
    printf("양수입니다.\n");
}

출력 결과는 아무것도 없습니다. num > 0은 거짓이므로 실행되지 않기 때문입니다.


● 중첩 if문

if문 안에 또 다른 if문을 넣을 수도 있습니다.

int score = 85;

if (score >= 60) {
    if (score >= 90) {
        printf("A등급\n");
    }
    else {
        printf("B등급\n");
    }
}

● 비교 가능한 조건식 예시

if (x == 10)    // x가 10과 같은가?
if (y != 5)     // y가 5와 다른가?
if (age >= 20)  // 나이가 20 이상인가?

※ ==는 비교, =는 대입이라는 점을 혼동하지 마세요!


if문은 C언어에서 조건에 따라 코드를 제어할 수 있게 해주는 가장 기본적인 도구입니다.
조건이 참일 때만 특정 코드를 실행하고, 그렇지 않으면 넘어가는 구조이기 때문에 프로그램의 유연한 흐름을 만들어줍니다.

앞으로 이어질 if-else, else if, switch 문법과 함께 익히면
어떤 상황에도 맞게 분기할 수 있는 코드 작성이 가능해집니다.


실습 문제

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

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

 

문제 1

정수형 변수 score가 60 이상일 때 "합격입니다."를 출력하는 if문을 작성하세요.

 

문제 2

아래 코드의 실행 결과는 무엇인가요?

int num = 0;

if (num)
    printf("양수입니다.\n");

 

문제 3

if문에서 조건식이 거짓일 경우, 아무것도 출력되지 않도록 x = -5일 때 "양수입니다."가 출력되지 않도록 작성해보세요.

 

문제 4

다음 코드에서 조건이 참일 때만 "10입니다."를 출력하도록 중괄호 없이 작성하세요.

int x = 10;
// 여기에 if문 추가

 

문제 5

다음 중 잘못된 if문을 고르세요.

A. if (x = 5) printf("OK");
B. if (x == 5) printf("OK");
C. if (y > 0) printf("양수");
D. if (z != 0) printf("0이 아닙니다.");

 

 







▶ 정답 확인하기

정답 1

int score = 75;
if (score >= 60) {
    printf("합격입니다.\n");
}

 

정답 2

출력 없음  
설명: num = 0 이므로 조건식이 거짓 → 실행되지 않음

 

정답 3

int x = -5;
if (x > 0) {
    printf("양수입니다.\n");  // 실행되지 않음
}

 

정답 4

int x = 10;
if (x == 10)
    printf("10입니다.\n");

 

정답 5

정답: A

설명: x = 5는 대입 연산자, x == 5처럼 비교 연산자를 써야 참/거짓 판단 가능
→ A는 항상 참으로 간주되어 "OK"가 출력될 수 있음 (논리 오류 발생)