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

[C언어][초급] Chapter25. 조건문 – else if 사용법과 순차 조건 분기 구조

about_IT 2025. 4. 17. 08:06
728x90

조건이 여러 개인 경우엔 어떻게 해야 할까?
앞에서 if와 if-else를 배웠죠.
하지만 현실의 조건은 하나의 참/거짓으로 나뉘기보다는, **"이 조건이 아니면 저 조건", "그것도 아니면 다른 조건"**처럼 여러 가지 상황을 나눠야 할 때가 많습니다.

이럴 때 사용하는 것이 바로 else if 문입니다.


● else if란?

else if는 여러 개의 조건을 순차적으로 검사할 수 있게 해주는 문법입니다.
위의 조건이 거짓일 경우 다음 조건을 검사하고, 마지막까지 모두 거짓이면 else가 실행됩니다.

if (조건1) {
    // 조건1이 참일 때 실행
} else if (조건2) {
    // 조건2가 참일 때 실행
} else if (조건3) {
    // 조건3이 참일 때 실행
} else {
    // 위 조건 모두 거짓일 때 실행
}

● 예제: 점수에 따라 등급 출력

int score = 82;

if (score >= 90) {
    printf("A등급\n");
} else if (score >= 80) {
    printf("B등급\n");
} else if (score >= 70) {
    printf("C등급\n");
} else {
    printf("재시험 대상\n");
}
  • score가 90 이상이면 A등급
  • 80 이상 90 미만이면 B등급
  • 70 이상 80 미만이면 C등급
  • 그 외는 재시험 대상

● else if문의 특징

  • 조건을 위에서부터 차례대로 검사하며,
    한 번 참이 되면 나머지는 검사하지 않고 종료됩니다.
  • 조건의 순서가 중요합니다!
    범위가 넓은 조건을 먼저 쓰면, 좁은 조건이 무시될 수 있습니다.

● 잘못된 예시 (주의!)

int score = 95;

if (score >= 80) {
    printf("B등급\n");
} else if (score >= 90) {
    printf("A등급\n");  // 실행되지 않음
}
  • score = 95인데 첫 번째 조건이 참이므로 "B등급" 출력 후 종료됨
  • 따라서 90점 이상 조건을 먼저 검사했어야 합니다.

● else if vs 중첩 if문

else if는 중첩 구조보다 가독성이 훨씬 좋고, 실수하기도 덜합니다.
조건이 여러 개일 땐 웬만하면 else if로 작성하는 것이 좋습니다.


 

else if 문은 여러 개의 조건을 순차적으로 검사할 수 있도록 도와주는 조건 분기 구조의 확장판입니다.
조건이 많아질수록 else if를 사용하면 코드를 깔끔하고 명확하게 만들 수 있어요.

 

실습 문제

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

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

 

문제 1

정수형 변수 score가 다음과 같은 기준에 따라 등급을 출력하도록 if, else if, else 문을 작성하세요.

  • 90점 이상: "A등급"
  • 80점 이상: "B등급"
  • 70점 이상: "C등급"
  • 그 외: "재시험"

 

문제 2

다음 코드의 실행 결과는?

int age = 17;

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

 

문제 3

x가 0보다 크면 "양수", 0이면 "0", 0보다 작으면 "음수"를 출력하는 if-else if-else 문을 작성하세요.

 

문제 4

아래 코드에서 "B등급"이 출력되지 않도록 조건 순서를 수정하세요.

int score = 95;

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

 

문제 5

다음 중 else if를 올바르게 사용한 코드는?

A.

if (x > 0) {
    printf("양수");
}
else {
    if (x == 0)
        printf("0");
}

 

B.

if (score >= 90)
    printf("A");
else
    score >= 80
    printf("B");

 

C.

if (n == 1)
    printf("1");
else if (n == 2)
    printf("2");
else
    printf("기타");






▶ 정답 확인하기

 

정답 1

int score = 75;

if (score >= 90) {
    printf("A등급\n");
} else if (score >= 80) {
    printf("B등급\n");
} else if (score >= 70) {
    printf("C등급\n");
} else {
    printf("재시험\n");
}

 

정답 2

출력: 미성년자입니다.
설명: age가 17 → 모든 조건이 거짓 → else 실행

 

정답 3

int x = -5;

if (x > 0) {
    printf("양수\n");
} else if (x == 0) {
    printf("0\n");
} else {
    printf("음수\n");
}

 

정답 4

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

 

정답 5

정답: C

설명: A는 중첩 if이고 B는 else 다음에 조건식을 쓸 수 없음.
C는 else if를 정확히 사용함.

728x90