Java에서 Switch 문은 여러 조건을 간단하고 효율적으로 처리할 수 있는 구조를 제공합니다. if...else
문에 비해 가독성이 좋고, 특정 값에 따라 실행될 코드를 쉽게 작성할 수 있어 유용합니다. 이번 글에서는 Switch 문법과 활용법, 그리고 사용 시 주의할 점을 알아보겠습니다.
1. Switch 문 기본 구조
switch
문은 표현식의 결과 값에 따라 실행될 코드를 결정합니다. case
키워드로 조건을 지정하고, break
문으로 실행을 종료합니다. 기본값은 default
로 처리합니다.
Switch 문법
switch (표현식) {
case 값1:
// 값1에 해당하는 코드
break;
case 값2:
// 값2에 해당하는 코드
break;
...
default:
// 위의 어떤 값에도 해당하지 않는 경우 실행되는 코드
}
예제: 요일 출력
public class SwitchExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("월요일");
break;
case 2:
System.out.println("화요일");
break;
case 3:
System.out.println("수요일");
break;
case 4:
System.out.println("목요일");
break;
case 5:
System.out.println("금요일");
break;
default:
System.out.println("주말");
}
}
}
출력 결과:
수요일
위 예제에서 day
값이 3이므로 "수요일"
이 출력됩니다. break
문이 없으면 다음 case
블록이 계속 실행됩니다.
2. Switch 문의 특징
- Switch 문은 정수, 문자, 문자열, 열거형(Enum)을 표현식으로 사용할 수 있습니다.
break
문을 사용하지 않으면 다음case
로 실행이 이어지는 Fall-Through가 발생합니다.default
는 필수가 아니지만, 모든 경우를 처리하기 위해 작성하는 것이 좋습니다.
Fall-Through 예제
public class FallThroughExample {
public static void main(String[] args) {
int number = 2;
switch (number) {
case 1:
System.out.println("하나");
case 2:
System.out.println("둘");
case 3:
System.out.println("셋");
break;
default:
System.out.println("기타");
}
}
}
출력 결과:
둘
셋
위 코드에서 case 2
에 break
문이 없기 때문에 case 3
의 코드도 실행됩니다.
3. Switch 문 활용
3.1 문자열을 사용한 Switch
Java 7부터는 switch
에서 문자열을 사용할 수 있습니다.
public class StringSwitchExample {
public static void main(String[] args) {
String role = "admin";
switch (role) {
case "admin":
System.out.println("관리자 권한이 부여됩니다.");
break;
case "user":
System.out.println("사용자 권한이 부여됩니다.");
break;
default:
System.out.println("권한이 없습니다.");
}
}
}
출력 결과:
관리자 권한이 부여됩니다.
3.2 열거형(Enum)과 Switch
enum
타입은 Switch 문에서 자주 사용됩니다. 가독성이 좋고, 코드를 명확하게 작성할 수 있습니다.
public class EnumSwitchExample {
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public static void main(String[] args) {
Day today = Day.SATURDAY;
switch (today) {
case MONDAY:
case TUESDAY:
case WEDNESDAY:
case THURSDAY:
case FRIDAY:
System.out.println("평일입니다.");
break;
case SATURDAY:
case SUNDAY:
System.out.println("주말입니다.");
break;
}
}
}
출력 결과:
주말입니다.
4. Switch 문 작성 시 주의사항
- Break 문:
break
문을 생략하면 의도치 않은 Fall-Through가 발생할 수 있습니다. - Default 블록:
default
를 추가해 예외적인 경우를 처리하세요. - 복잡한 조건: Switch 문은 값 비교에 적합하며, 복잡한 조건식에는
if...else
가 더 적합합니다.
5. If...Else와 Switch 비교
if...else
문은 복잡한 조건을 처리할 때 유리하지만, Switch 문은 간단한 값 비교에서 더 가독성이 좋고 효율적입니다.
Switch vs If...Else 예제
// If...Else
if (day == 1) {
System.out.println("월요일");
} else if (day == 2) {
System.out.println("화요일");
} else {
System.out.println("기타");
}
// Switch
switch (day) {
case 1:
System.out.println("월요일");
break;
case 2:
System.out.println("화요일");
break;
default:
System.out.println("기타");
}
Switch 문은 조건이 많을수록 더 간결하고 효율적이라는 장점이 있습니다.
결론
Java의 Switch 문은 간단한 값 비교를 효율적으로 처리할 수 있는 강력한 도구입니다. 적절한 break
와 default
사용으로 코드를 명확하게 작성할 수 있으며, 문자열이나 enum
타입과도 잘 어울립니다. 이번 글에서 소개한 내용을 바탕으로 조건문을 최적화하고, 더 나은 코드를 작성해 보세요!
댓글 쓰기