if 문은 조건식의 결과가 true,false 두 가지 밖에 없기 때문에 경우의 수가 많아질수록 else if를 반복적으로 추가해야 하므로 코드가 복잡해진다 !
그러나, switch문은 변수의 값에 따라서 실행문이 졀정되기 때문에 같은 기능의 if 문 보다 코드가 간결해진다.
switch(변수) {
case 값1; /변수가 값1일 경우
⬇️
break; /변수가 값2일 경우
case 값2;
⬇️
break; /변수의 값1,값2 모두 아닐경우
default;
}
switch 문은 괄호 안의 변수값에 따라 해당 case로 가서 실행문을 실행시킨다. 만약 변수값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행시킨다.
default가 필요 없다면 생략가능하다 !
public class SwitchExample {
public static void main(String[] args) {
int num = (int)(Math.random()*6) +1;
/주사위 번호 하나 뽑기
switch(num) {
case 1:
System.out.println("1번이 나왔습니다.");
break;
case 2;
System.out.println("2번이 나왔습니다.");
break;
case 3;
System.out.println("3번이 나왔습니다.");
break;
case 4;
System.out.println("4번이 나왔습니다.");
break;
case 5;
System.out.println("5번이 나왔습니다.");
break;
default
System.out.println("6번이 나왔습니다.");
}
}
}
출력결과 : 2번이 나왔습니다.
case 끝에 있는 break는 다음 case를 실행하지 않고 switch 문을 빠져나가기 위해 필요하다.
만약, break가 없다면 다음 case가 연달아 실행되는데, 이때는 case 값과는 상관없이 실행된다.