자바(Java) 프로그래밍 조건문 - switch case문

반응형
728x90
반응형

1. switch - case문

조건문을 코딩할 때 if문을 사용하면 번거로운 경우가 있다.

조건식의 결과가 정수 또는 문자열 값이고

그 값에따라 수행되는 경우가 각각 다른 경우에는

switch-case문으로 구성하는 것이 코드도 깔끔하고

가독성도 좋다.

1-1. if 문과 switch-case문 비교

//if문 코딩 방법
if(조건식1) {
	수행문1;
}
else if(조건식2) {
	수행문2;
}
else if(조건식3) {
	수행문3;
}
else{
	수행문4;
}

//switch-case문
switch(조건){
	case1 : 수행문1;
    			break;
	case2 : 수행문2;
    			break;
	case3 : 수행문3;
    			break;
	default : 수행문4;
}

if 문의 제일 마지막 else의 역할을 default가 수행한다.

switch-case문은 주로 조건이 하나의 변수 값이나 상수값으로

구분되는 경우 사용한다.

1-2. switch-case문 예제

순위에 따른 메달 색 구분하여 출력하기

package ifexample;

public class SwitchCase {

	public static void main(String[] args) {
		int ranking = 1;
		char medalColor;

		switch (ranking) {
		case 1:
			medalColor = 'G';
			break;
		case 2:
			medalColor = 'S';
			break;
		case 3:
			medalColor = 'B';
			break;
		default:
			medalColor = 'A';
		}
		System.out.printf("%d등 메달의 색깔은 %s입니다", ranking, medalColor);
	}

}

ranking의 값이 1이기 때문에 case 1을 실행하고

break에 의해 바로 코드에서 빠져 나온다.

만일 ranking의 값이 3이라면 case 3을 실행하고

빠져나올것이다.

예시의 경우 "1등의 메달 색깔은 G입니다" 라고 출력된다.

1-3. case문 동시에 사용

case문은 여러 경우를 동시에 처리 할 때도 자주 사용한다.

각 달의 날짜를 출력하는 경우를 생각해 보면

1, 3, 5, 7, 8, 10, 12월은 31일 까지이고

4, 6, 9, 11월은 30일 까지, 2월은 28일 까지이다.

이 경우 1부터 12월까지 case 1, case 2 ... case 12까지 한다면

코드가 무척이나 길어질 것이다.

이렇게 중복된 값의 수행문을 도출하는 경우 case문을 동시에 사용하면된다.

case문 동시 사용 예시

case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : day = 31;
	break;
case 4 : case 6 : case 9 : case 11 : day = 30;
	break;
case 2 : day = 28;
	break;

2. case문에 문자열 사용하기

case문 문자 사용 예제

package ifexample;

public class SwitchCase {

	public static void main(String[] args) {
		String medal = "Gold";

		switch (medal) {
		case "Gold":
			System.out.println("금메달입니다.");
			break;
		case "Silver":
			System.out.println("은메달입니다.");
			break;
		case "Bronze":
			System.out.println("동메달입니다.");
			break;
		default:
			System.out.println("메달이 없습니다.");
			break;
		}
	}
}
728x90
반응형

댓글

Designed by JB FACTORY