C언어 초급 - 6장: 조건문 (6.2 else if 문 – 여러 가지 조건 분기)

2025. 2. 23. 18:55프로그래밍 언어/C

6.2 else if 문 – 여러 가지 조건 분기

C 언어에서 else if 문은 여러 개의 조건을 검사할 때 사용됩니다.
if 문 하나로 모든 조건을 처리하기 어렵다면, 여러 개의 else if 문을 추가하여 다중 조건 분기를 구현할 수 있습니다.
이를 통해 프로그램이 순차적으로 조건을 확인하고 해당하는 블록을 실행할 수 있습니다.


1. else if 문의 개념

  • if 문 → 첫 번째 조건을 검사.
  • else if 문 → 앞의 조건이 거짓(false)일 경우 새로운 조건을 검사.
  • else 문 → 모든 if 및 else if 조건이 거짓일 경우 실행.

2. else if 문의 기본 구조

if (조건1) {
    // 조건1이 참일 때 실행
} else if (조건2) {
    // 조건1이 거짓이고, 조건2가 참일 때 실행
} else if (조건3) {
    // 조건1과 조건2가 거짓이고, 조건3이 참일 때 실행
} else {
    // 모든 조건이 거짓일 때 실행
}

3. else if 문의 예제

3.1 학점 판별 프로그램

학생의 점수를 입력받아 학점을 출력하는 프로그램을 만들어보겠습니다.

#include <stdio.h>

int main() {
    int score;

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

    if (score >= 90) {
        printf("등급: A\n");
    } else if (score >= 80) {
        printf("등급: B\n");
    } else if (score >= 70) {
        printf("등급: C\n");
    } else if (score >= 60) {
        printf("등급: D\n");
    } else {
        printf("등급: F\n");
    }

    return 0;
}

실행 예시

점수를 입력하세요: 85
등급: B
점수를 입력하세요: 72
등급: C
점수를 입력하세요: 59
등급: F

📌 설명

  • score >= 90이면 "A" 출력.
  • score >= 80이면 "B" 출력.
  • score >= 70이면 "C" 출력.
  • score >= 60이면 "D" 출력.
  • 그 외 모든 경우 "F" 출력.

3.2 체온 검사 프로그램

환자의 체온을 입력받아 정상, 주의, 고열 상태를 출력하는 프로그램입니다.

#include <stdio.h>

int main() {
    float temperature;

    printf("체온을 입력하세요 (°C): ");
    scanf("%f", &temperature);

    if (temperature < 36.0) {
        printf("체온이 낮습니다. 주의하세요!\n");
    } else if (temperature >= 36.0 && temperature <= 37.5) {
        printf("정상 체온입니다.\n");
    } else if (temperature > 37.5 && temperature <= 39.0) {
        printf("미열이 있습니다. 충분한 휴식을 취하세요.\n");
    } else {
        printf("고열입니다! 병원을 방문하세요.\n");
    }

    return 0;
}

실행 예시

체온을 입력하세요 (°C): 38.0
미열이 있습니다. 충분한 휴식을 취하세요.
체온을 입력하세요 (°C): 35.5
체온이 낮습니다. 주의하세요!

📌 설명

  • 36.0°C 미만 → "체온이 낮습니다."
  • 36.0°C ~ 37.5°C → "정상 체온입니다."
  • 37.5°C ~ 39.0°C → "미열이 있습니다."
  • 39.0°C 초과 → "고열입니다! 병원을 방문하세요."

4. else if 문의 실행 흐름

  1. if 문부터 시작해서 조건을 순차적으로 검사.
  2. 첫 번째로 참(true)인 조건이 실행됨.
  3. 그 이후의 else if 문과 else 문은 실행되지 않음.

📌 중요한 특징

  • 첫 번째로 참(true)이 된 블록만 실행됨.
  • 한 번 실행된 후에는 나머지 조건을 검사하지 않음.

예제 실행 과정

int score = 85;

if (score >= 90) {
    printf("A");
} else if (score >= 80) {
    printf("B");
} else if (score >= 70) {
    printf("C");
} else {
    printf("F");
}

📌 score = 85이므로 score >= 80이 참(true)이 되어 "B"가 출력되고, 이후 나머지 조건들은 검사하지 않습니다.


5. else if 문을 활용한 로그인 시스템

사용자가 입력한 아이디와 비밀번호를 검사하여 로그인 여부를 확인하는 프로그램입니다.

#include <stdio.h>
#include <string.h>

int main() {
    char username[20];
    char password[20];

    printf("아이디 입력: ");
    scanf("%s", username);

    printf("비밀번호 입력: ");
    scanf("%s", password);

    if (strcmp(username, "admin") == 0 && strcmp(password, "1234") == 0) {
        printf("로그인 성공!\n");
    } else if (strcmp(username, "admin") != 0) {
        printf("아이디가 틀렸습니다.\n");
    } else {
        printf("비밀번호가 틀렸습니다.\n");
    }

    return 0;
}

실행 예시

아이디 입력: admin
비밀번호 입력: 1234
로그인 성공!
아이디 입력: guest
비밀번호 입력: 1234
아이디가 틀렸습니다.
아이디 입력: admin
비밀번호 입력: 0000
비밀번호가 틀렸습니다.

📌 설명

  • admin 계정이고 비밀번호 1234이면 "로그인 성공!"
  • 아이디가 틀리면 "아이디가 틀렸습니다."
  • 아이디는 맞지만 비밀번호가 틀리면 "비밀번호가 틀렸습니다."

6. 정리

문법  설명 예제
if 단일 조건 검사 if (x > 0) { }
if-else 조건이 참이면 if, 거짓이면 else 실행 if (x > 0) { } else { }
if-else if-else 여러 개의 조건 검사 if (x > 10) { } else if (x > 5) { } else { }

📌 조건이 하나일 때 → if 사용
📌 참/거짓에 따라 다른 코드 실행 → if-else 사용
📌 여러 개의 조건 검사 → if-else if-else 사용
📌 첫 번째로 참(true)인 블록이 실행되면 이후 조건은 검사하지 않음