[Java] switch expression

이동엽·2022년 10월 28일
0

java

목록 보기
10/19

Java version이 업데이트됨에 따라, 문법들이 바뀌고 있다.
오늘은 평소 자주 사용하던 switch문의 새로운 사용법에 대해 알아보고자 한다.


기존의 switch문

private static void test(int n) {
	switch (n) {
    	case 1: 
        case 2:
        case 3: {
        	System.out.println("1-3");
    		break;
    	}
        case 4 : {
        	System.out.println("4");
    		break;
        }
    }
}

💡 기존 switch문의 특징

  • 불필요한 중복 코드가 발생한다.
  • 다수의 casebreak가 존재한다.
  • 개발자가 break를 빼먹는 등의 실수를 유발할 수 있다.

새롭게 제시된 switch문

private static void test(int n) {
	switch (n) {
    	case 1, 2, 3 -> System.out.println("1-3");
        case 4 -> System.out.println("4");
    }
}

💡 새롭게 제시된 switch문의 특징

  • 화살표를 사용해 실행문을 나타낸다.
  • 조건들을 ,를 이용해 나열할 수 있다.
  • break를 사용하지 않음으로써 실수를 줄인다.

또한 위 코드의 경우, 출력문 안에 switch문을 작성할 수 있다.


💡 출력문 안에서 작성이 가능해진 switch문

private static void test(int n) {
	System.out.println(
    	switch (n) {
    	case 1, 2, 3 -> "1-3";
        case 4 -> "4";
    	}
    );
}
  • 작성된 코드에서 알 수 있듯이, 기존의 switch문과 달리 새로운 문법은 리턴값이 있는 형태이다.

💡 yield 키워드 사용하기

private static int plus(int n) {
	int result = switch(n) {
    	case 1 -> { yield n++; }
        default -> { yield n; }
    };
}
  • yield 키워드는 쉽게 생각하면 함수의 return 키워드와 비슷하다고 생각하자.
  • 또한 반드시 switch 블록 안에서만 유효하다는 것을 잊지 말자!

참고 자료

profile
백엔드 개발자로 등 따숩고 배 부르게 되는 그 날까지

0개의 댓글