Java switch 문
문제와 함께 switch문을 배워보도록 하자.
프로그램은 사용자 등급에 따라 상시 할인액을 적용하는 프로그램을 작성한다.
- Gold: 10%
- Silver: 5%
- Bronze: 3%
- None: 1%
할인 적용 후 메시지는 "할인 적용 금액: " + "할인 퍼센트" 이다.
아래 예시와 같이 출력한다.
- Silver 사용자: "할인 적용 금액 5%"
switch 문 코드 구현
public class Switch {
public static void main(String[] args) {
String grade = "Silver";
String discount = "";
switch (grade) {
case "Bronze":
discount = "3%";
break;
case "Silver":
discount = "5%";
break;
case "Gold":
discount = "10%";
break;
default:
discount = "1%";
}
System.out.println("할인 적용 금액: " + discount);
}
}
Code Output:
할인 적용 금액: 5%
switch 문은 case에서 값이 같은지 확인한다.
- switch(grade) 결과 값이 case 의 값과 일치하면 해당 case 코드를 실행함
- break 문으로 switch 문 종료함. 그렇지 않으면 아래 case까지 수행한다.
- default 는 모든 case의 일치하는 값이 없는 경우 실행함.
💡
Java 1.7 버전부터 Switch 문을 String 타입 변수로 할당한 경우,
case 문자열을 알아서 비교해준다.
case 문자열을 알아서 비교해준다.
자세한 사항은 JLS를 살펴보도록 한다.
개선된 switch 문
자바 14부터 새로운 switch 문이 개선되었다.
새로운 switch 문의 큰 특징은 다음과 같다.
- 화살표 (->) 를 사용한다.
- 선택한 데이터를 반환
public class SwitchEffect {
public static void main(String[] args) {
String grade = "Silver";
String discount = switch (grade) {
case "Bronze" -> discount = "3%";
case "Silver" -> discount = "5%";
case "Gold" -> discount = "10%";
default -> discount = "1%";
};
System.out.println("적용 된 할인 금액: " + discount);
}
}
switch 문이 훨씬 간결해졌다.