Language/JAVA

[JAVA] switch 문

IT수정 2024. 9. 3. 20:23

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