Programming Languages/Java

[Java] switch 문 (case, default )

Jesse 2021. 3. 15. 22:14

오늘은 자바 switch 문에 대해서 알아 보겠습니다.

자바의 switch문은 여러 가지 경우의 수 중에 한개를 선택해야 될때 유용하게 사용 됩니다.

  1. switch 문에 들어간 값은 각각의 case에 할당된 값들과 비교 되어진다.
  2. 일치하는 값을 찾으면 해당 case를 실행한다.
  3. break와 default는 필수가 아닌 선택이다.

예를 들면, 달력에서 입력된 월의 마지막 날이 몇일인지 구하는 함수를 작성해야 하는 경우를 보겠습니다.

  • 1월, 3월, 5월, 7월, 8월, 10월, 12일은 마지막 날이 31일 입니다.
  • 4월, 6월, 9월, 11월은 마지막 날이 30일 입니다.
  • 2월은 마지막 날이 28일 입니다. 

코드로 구현한다면,

public class DateService {
	public void printLastDay(int month) {
		switch(month) {
			case 2:
				System.out.println(month + "월의 마지막 일은 28일 입니다.");
				break;	
			case 4: case 6: case 9: case 11:
				System.out.println(month + "월의 마지막 일은 30일 입니다.");
				break;
			case 1: case 3: case 5: case 7: case 8: case 10: case 12:
				System.out.println(month + "월의 마지막 일은 31일 입니다.");
				break;
		}
	}
}

각각 case마다 break를 해두었는데 그 이유는 해당 월의 마지막 일이 몇일인지 찾았다면

더 이상 진행할 필요가 없기 때문입니다.

java의 switch문에는 어떠한 case에도 해당하지 않았을 경우에 쓸수 있는

default가 있습니다. 앞서 언급한것처럼 default의 사용은 선택이기 때문에

필수적으로 들어가야 되는것은 아닙니다.

그럼 이제 default의 활용을 볼수 있는 예시를 볼까요

public class DateService {
	public void printLastDay(int month) {
		switch(month) {
			case 2:
				System.out.println(month + "월의 마지막 일은 28일 입니다.");
				break;
		
			case 4: case 6: case 9: case 11:
				System.out.println(month + "월의 마지막 일은 30일 입니다.");
				break;
			case 1: case 3: case 5: case 7: case 8: case 10: case 12:
				System.out.println(month + "월의 마지막 일은 31일 입니다.");
				break;
			default:
				System.out.println("잘못된 입력값입니다");
		}
	}
}

해당하는 월의 마지막 날짜를 찾는 함수 인데요.

이번에는 default를 넣어서 오류 체크까지 추가 하였습니다.

이제 실수로 1월~12월 사이가 아닌 잘못된 값을 넣으면

어떤 case에도 해당하지 않기 때문에 default 값을 출력하게 됩니다.

5월과 13월은 테스트 해보았습니다. 물론 13월은 존재하지 않습니다.

결과는,