JAVA12 Switch문 새로운 기능 설명 및 예제

Java12에서 Switch문을 사용하는 방법과 예제입니다.

잘못된 부분이 있으면 코멘트 남겨주시면 감사하겠습니다.

 

Switch문

Switch문이 확장되었습니다.

지금까지 사용했던 Switch문은 아래와 같습니다.

String time;
switch (weekday) {
	case MONDAY:
	case FRIDAY:
		time = "10:00-18:00";
		break;
	case TUESDAY:
	case THURSDAY:
		time = "10:00-14:00";
		break;
	default:
		time = "휴일";
}

 

위와 같은 Switch문을 아래와 같이도 작성할 수 있게 되었습니다.

String time = switch (weekday) {
	case MONDAY, FRIDAY -> "10:00-18:00";
	case TUESDAY, THURSDAY -> "10:00-14:00";
	default -> "휴일";
};

 

지금까지는 Switch문을 사용하게 되면 작성해야 하는 양이 많았지만 break이나 값 설정 부분이 간략하게 되었습니다.

 

복수의 case

case에 복수의 값을 설정할 수 있게 되었습니다.

switch (weekday) {
	case MONDAY, FRIDAY:
		time = "10:00-18:00";
		break;
	case TUESDAY, THURSDAY:
		time = "10:00-14:00";
		break;
	default:
		time = "휴일";
}

 

지시자(->) 문법

->를 사용하는 것으로 break를 사용하지 않게 되었습니다.

String time;
switch (weekday) {
	case MONDAY, FRIDAY -> time = "10:00-18:00";
	case TUESDAY, THURSDAY -> time = "10:00-14:00";
	default -> time = "휴일";
}

 

블록을 사용하여 여러가지 처리를 작성할 수 있습니다.

String time;
switch (weekday) {
	case MONDAY, FRIDAY -> {
		var endTime = getEndTime();
		time = "10:00-" + endTime;
	}
	case TUESDAY, THURSDAY -> time = "10:00-14:00";
	default -> time = "휴일";
}

 

Switch식

Switch를 식으로도 사용할 수 있습니다.

지시자 문법을 사용하지 않는 경우나 지시자 문법에 블록을 사용한 경우는 break로 값을 반환합니다.

String time = switch (weekday) {
	case MONDAY, FRIDAY -> {
		var endTime = getEndTime();
		break "10:00-" + endTime;
	}
	case TUESDAY, THURSDAY -> "10:00-14:00";
	default -> "휴일";
};

댓글