switch-case문
- 조건문을 구현할 때 if 문을 사용하면 번거로운 경우가 있습니다.
- switch-case문은 주로 조건이 하나의 변수 값이나 상수 값으로 구분되는 경우 사용합니다.
- 조건식의 결과가 정수 또는 문자열 값이고 그 값에 따라 수행되는 경우가 각각 다른 경우에는 switch-case 문으로 구헝하는 것이 코드도 깔끔하고 가독성도 좋습니다.
- case문에는 여러 문장이 있어도 {}를 여러 번 사용하지 않습니다.
if-else if-else
if (rank ==1) {
medalColor = 'G';
} else if (rank == 2) {
medalColor = 'S';
} else if (rank == 3) {
medalColor = 'B';
} else {
medalColor = 'A';
}
switch-case
switch(rank) {
case 1: medalColor = 'G';
break;
case 2: medalColor = 'S';
break;
case 3: medalColor = 'B';
break;
default : medalColor = 'A';
}
switch(조건) {
case 값1: 수행문1;
break;
case 값2: 수행문2;
break;
case 값3: 수행문3;
break;
default: 수행문4;
}
package selfstudy;
public class SwitchCase1 {
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.println(ranking + "등 메달의 색깔은 " + medalColor + " 입니다.");
}
}
실행결과
1등 메달의 색깔은 G 입니다.
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;
switch-case문에서 break의 역할
- break문은 switch-case문의 수행을 멈추고 빠져나가도록 합니다.
- break를 쓰지 않으면 다음 break를 만날때까지 다음 case 부분이 실행됩니다.
case문에 문자열 사용하기
- JDK1.7부터는 switch-case문의 case값에 정수 값 뿐 아니라 문자열도 사용할 수 있습니다.
- 이전에는 문자열을 사용할 수 없었기 때문에 문자열을 비교하는 equals()메서드라는 것을 이용해야 했습니다.
JDK1.7 이전
if (medal.equals("Gold")) {
...
}
package selfstudy;
public class SwitchCase2 {
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("메달이 없습니다.");
}
}
}
실행결과
1등 메달의 색깔은 G 입니다.
댓글