[6단계] 조건이 세 가지 이상일 땐? elif로 흐름을 논리적으로 나누자
📌 학습 목표
if, elif, else를 이용해 여러 조건을 순차적으로 처리하는 방법을 배웁니다.
| < 6단계, if & elif > |
1. 도입 – 현실에는 두 가지 조건만 있는 게 아닙니다
현실의 조건은 이렇게 단순하지 않습니다:
- “성인이면 ~하고, 아니면 ~한다.”
이런 상황은 더 흔하죠:
- “13세 미만은 어린이, 13~17세는 청소년, 18세 이상은 성인, 65세 이상은 노년층.”
이렇게 세 가지 이상의 조건을 처리할 때 필요한 것이 바로 elif입니다.
2. 기본 구조 – if → elif → else
if 조건1:
실행문1
elif 조건2:
실행문2
else:
실행문3
- 조건을 위에서부터 차례대로 검사합니다.
- 처음 참(True)이 되는 조건만 실행되고, 나머지는 무시됩니다.
else는 모든 조건이 거짓일 때 실행되는 마지막 안전장치입니다.
3. 실전 예제 – 연령대 분류 시스템
실제 서비스에서 자주 등장하는 로직입니다:
age = int(input("나이를 입력하세요: "))
if age < 13:
print("👶 어린이 요금 적용")
elif age < 18:
print("🧒 청소년 요금 적용")
elif age < 65:
print("🧑 일반 요금 적용")
else:
print("👴 경로우대 요금 적용")
4. 흐름이 이해되지 않는다면? 실행 순서를 시각화해보세요
if age < 13→ True? → 실행하고 종료- 아니면
elif age < 18→ True? → 실행하고 종료 - 아니면
elif age < 65→ True? → 실행하고 종료 - 그 외 →
else실행
딱 하나의 블록만 실행됩니다.
5. 개발자 입장에서 생각해보기: elif의 장점
if + if + if로 나열하면 모든 조건을 다 평가해서 불필요한 낭비 발생if → elif → else구조는 첫 조건만 만족해도 흐름을 끊을 수 있어 더 효율적
✅ 실제 서비스 로직에서도 가장 많이 쓰이는 조건 처리 방식입니다.
6. 자주 묻는 질문 (FAQ)
Q1. elif는 몇 개든 써도 되나요?
→ 네, 원하면 10개든 20개든 나열할 수 있습니다. 단, 너무 많으면 match문이나 딕셔너리도 고려해보세요.
Q2. else는 꼭 써야 하나요?
→ 아니요, 선택사항입니다. 모든 조건을 명시할 수 있다면 else는 생략해도 괜찮습니다.
Q3. 순서가 중요하다고요?
→ 네, 조건이 참일 가능성이 높은 것부터 위에 배치하는 게 성능과 가독성 면에서 좋습니다.
7. 실전 미션 – 영화관 요금 계산기 만들기
요금 정책:
- 어린이(0~12): 5,000원
- 청소년(13~17): 7,000원
- 성인(18~64): 10,000원
- 노년(65 이상): 6,000원
age = int(input("나이를 입력하세요: "))
if age < 0:
print("잘못된 입력입니다.")
elif age < 13:
print("어린이 요금: 5,000원")
elif age < 18:
print("청소년 요금: 7,000원")
elif age < 65:
print("성인 요금: 10,000원")
else:
print("노년층 요금: 6,000원")
8. 다음 단계 예고
7단계에서는 and, or, not을 배웁니다!
조건을 조합해서 “그리고”, “또는”, “아닌 경우”를 구현할 수 있어요!