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 문의 실행 흐름
- if 문부터 시작해서 조건을 순차적으로 검사.
- 첫 번째로 참(true)인 조건이 실행됨.
- 그 이후의 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)인 블록이 실행되면 이후 조건은 검사하지 않음
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 초급 - 7장: 반복문 (7.1 while 문) (0) | 2025.02.23 |
---|---|
C언어 초급 - 6장: 조건문 (6.3 switch-case 문) (0) | 2025.02.23 |
C언어 초급 - 6장: 조건문 (6.1 if, if-else 문) (0) | 2025.02.23 |
C언어 초급 - 5장: 연산자와 표현식 (5.5 증감 연산자 (++, --)) (0) | 2025.02.23 |
C언어 초급 - 5장: 연산자와 표현식 (5.4 논리 연산자 (&&, ||, !)) (0) | 2025.02.23 |