if 문은 조건식의 결과가 두 가지(true, false) 밖에 없기 때문에 경우의 수가 많아질수록 else if를 반복적으로 추가해야 하므로 코드가 복잡해진다. 그러나 switch 문은 변수의 값에 따라서 실행문이 결정되기 때문에 같은 기능의 if 문보다 코드가 간결해진다.
switch 문
switch(변수) {
case 값1:
실행문;
break;
case 값2:
실행문;
break;
default:
실행문;
}
switch 문은 괄호 안의 변수값에 따라 해당 case로 가서 실행문을 실행시킨다. 만약 변숫값과 동일한 값을 갖는 case가 없으면 default 문으로 가서 실행문을 실행시킨다. default가 필요 없다면 생략 가능하다.
switch 문 예제 : 주사위 난수 생성
public class DiceExample {
public static void main(String[] args) {
int num = (int)(Math.random() * 6) + 1;
switch(num) {
case 1:
System.out.println("1번이 나왔습니다.");
break;
case 2:
System.out.println("2번이 나왔습니다.");
break;
case 3:
System.out.println("3번이 나왔습니다.");
break;
case 4:
System.out.println("4번이 나왔습니다.");
break;
case 5:
System.out.println("5번이 나왔습니다.");
break;
default:
System.out.println("6번이 나왔습니다.");
}
Java 12 이후부터는 switch 문에서 Expressions(표현식)을 사용할 수 있다. break 문을 없애는 대신에 화살표와 중괄호를 사용해 가독성이 좋아졌다. 표현식을 사용하면 스위치 된 값을 변수에 바로 대입할 수도 있다. 단일 값일 경우에 화살표 오른쪽에 값을 기술하면 되고, 중괄호를 사용할 경우에는 yield 키워드로 값을 지정하면 된다. 단, 이경우에는 default가 반드시 존재해야 한다.
타입 변수 = switch(변수) {
case "값1" -> 변수값;
case "값2" -> {
...;
yield 변수값;
}
default -> 변수값;
};
switch Expressions 예제 : 요일에 따른 활동 추천
public class Main {
public static void main(String[] args) {
String day = "화요일";
String activity = switch (day) {
case "월요일" -> "주간 계획을 세워보세요.";
case "화요일" -> "운동을 하는 날입니다.";
case "수요일" -> "독서를 추천합니다.";
case "목요일" -> "친구와 만나는 건 어떨까요?";
case "금요일" -> "영화를 감상하세요.";
case "토요일" -> "여행을 떠나보세요.";
case "일요일" -> "휴식을 취하세요.";
default -> "올바른 요일을 입력하세요.";
};
System.out.println(activity);
}
}'Language > JAVA' 카테고리의 다른 글
| [JAVA] while 문 (0) | 2024.09.03 |
|---|---|
| [JAVA] for 문 (0) | 2024.09.03 |
| [JAVA] Math.random 메소드 (0) | 2024.09.03 |
| [JAVA] if 문 (2) | 2024.09.03 |
| [JAVA] 연산의 방향과 우선순위 (0) | 2024.09.03 |