조건문은 프로그램이 특정 조건을 만족할 때만 실행되도록 제어하는 기능을 합니다.
Dart에서는 if-else 문과 switch 문을 사용하여 조건을 처리할 수 있습니다.
각각의 조건문을 언제 사용해야 하는지와 차이점을 알아봅시다.
if-else 문
•
사용 시점
◦
조건이 복잡하거나 여러 개의 조건을 비교해야 할 때
◦
숫자, 문자열, 불리언 등 다양한 데이터 타입을 조건으로 사용할 때
•
기본 구조
if (조건1) {
// 조건1이 참일 때 실행
} else if (조건2) {
// 조건2가 참일 때 실행
} else {
// 위 조건들이 모두 거짓일 때 실행
}
Dart
복사
◦
예제 : 사용자의 나이에 따라 권한을 설정하기
void main() {
int age = 20;
if (age >= 18) {
print("성인입니다. 모든 콘텐츠를 볼 수 있습니다.");
} else if (age >= 13) {
print("청소년입니다. 일부 콘텐츠에 제한이 있습니다.");
} else {
print("어린이입니다. 어린이 전용 콘텐츠만 볼 수 있습니다.");
}
}
Dart
복사
switch 문
•
사용 시점
◦
조건이 많지만 비교할 값이 고정된 경우 (예: 특정 숫자, 문자열)
◦
if-else 문을 사용하면 너무 길어질 경우 가독성을 높이기 위해 사용
•
기본 구조
switch (값) {
case 조건1:
// 조건1이 참일 때 실행
break;
case 조건2:
// 조건2가 참일 때 실행
break;
default:
// 위 조건들이 모두 거짓일 때 실행
}
Dart
복사
◦
예제 : 요일에 따라 메시지 출력하기
void main() {
String day = "월요일";
switch (day) {
case "월요일":
print("한 주가 시작되었습니다! 힘내세요.");
break;
case "금요일":
print("주말이 다가오고 있습니다!");
break;
case "토요일":
case "일요일":
print("즐거운 주말 보내세요!");
break;
default:
print("일상적인 하루입니다.");
}
}
Dart
복사
if-else vs switch 비교
비교 항목 | if-else | switch |
사용 시점 | 조건이 범위를 가지거나 복잡한 연산이 필요할 때 | 비교할 값이 고정된 경우 (특정 숫자, 문자열 등) |
데이터 타입 | int, double, String, bool 등 다양한 타입 사용 가능 | int, String, enum 같은 고정된 값만 비교 가능 |
가독성 | 여러 개의 else if가 있으면 코드가 길어질 수 있음 | case를 사용하여 코드가 깔끔해짐 |
실행 속도 | 논리 연산이 많으면 속도가 느려질 수 있음 | 일반적으로 switch 문이 최적화되어 더 빠름 |
사용 예시 | 나이, 점수 비교 등 범위 조건을 다룰 때 | 요일, 메뉴 선택 등 고정된 값을 다룰 때 |
과제
•
90점 이상 → "A 학점"
•
80점 이상 → "B 학점"
•
70점 이상 → "C 학점"
•
60점 이상 → "D 학점"
•
60점 미만 → "F 학점"
힌트
•
"월요일" → "한 주의 시작! 힘내세요!"
•
"금요일" → "주말이 곧 옵니다!"
•
"토요일", "일요일" → "즐거운 주말 보내세요!"
•
그 외 → "평범한 하루입니다."
힌트