switch

bery·2021년 4월 19일
0

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('그런 과일은 없습니다.')
}

0개의 댓글