switch문은 case가 다양할 경우 보다 간결하게 작성할 수 있다.
switch(평가) {
case A:
A일때 코드
case B:
B일때 코드
}
switch는 괄호 안의 값과 동일한 케이스 값을 찾아 코드를 실행한다.
이때 break를 만나면 switch문을 빠져나온다.
let fruit = prompt('무슨 과일을 사고 싶어요?')
switch(fruit) {
case '사과' :
console.log('100원 입니다.');
case '바나나' :
console.log('200원 입니다.');
case '키위' :
console.log('300원 입니다.');
case '멜론' :
console.log('500원 입니다.');
case '수박' :
console.log('500원 입니다.');
}
이 경우, case는 fruit가 바나나일때 이 이후의 모든 코드를 다 실행한다. break를 만나기 전에 다 실행하므로 break를 넣어준다.
switch(fruit) {
case '사과' :
console.log('100원 입니다.');
break;
case '바나나' :
console.log('200원 입니다.');
break;
case '키위' :
console.log('300원 입니다.');
break;
case '멜론' :
console.log('500원 입니다.');
break;
case '수박' :
console.log('500원 입니다.');
break;
}
그런데 사용자가 여기에 없는 과일을 입력한다면 아무 일도 발생하지 않는다. 제대로 동작하는건지 오류가 난건지 사용자 입장에선 알 수 없기 때문에 메세지를 입력해준다.
if문같은 경우는 else를 사용했는데 switch문에서는 default를 사용하면 된다.
switch(fruit) {
case '사과' :
console.log('100원 입니다.');
break;
case '바나나' :
console.log('200원 입니다.');
break;
case '키위' :
console.log('300원 입니다.');
break;
case '멜론' :
console.log('500원 입니다.');
break;
case '수박' :
console.log('500원 입니다.');
break;
default :
console.log('그런 과일은 없습니다.');
}
또 한가지는, 멜론과 수박 가격이 같아서 동일한 메시지를 보여주고 있는데, 이 경우엔 아래처럼 작성해주면 코드가 더 간결해진다.
let fruit = prompt('무슨 과일을 사고 싶어요?')
switch(fruit) {
case '사과' :
console.log('100원 입니다.');
break;
case '바나나' :
console.log('200원 입니다.');
break;
case '키위' :
console.log('300원 입니다.');
break;
case '멜론' :
case '수박' :
console.log('500원 입니다.');
break;
default :
console.log('그런 과일은 없습니다.')
}