whatisthis?

javaScript. Switch문 본문

WEB STUDY/JAVASCRIPT

javaScript. Switch문

thisisyjin 2021. 12. 20. 18:45

REFERENCE

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/switch

 

switch - JavaScript | MDN

The switch statement evaluates an expression, matching the expression's value to a case clause, and executes statements associated with that case, as well as statements in cases that follow the matching case.

developer.mozilla.org

케이스가 지정된 if문이라 생각하면 쉽다.

if문은 조건에 true/false에 따라 달라진다면,

switch문은 변수의 값에 따라 달라진다.

 

💡 Switch문을 쓰는 이유는? (if와 다른점)

 

  • 특정 변수를 다양한 상황에서 비교할 수 있게 해줌.
  • 코드 자체가 비교 상황을 잘 설명해줌.

 

💡 SYNTAX

 

switch (변수명) {

  case '값1' :

     // 값1일때 실행할 코드

 

  case '값2':

    // 값 2일때 실행할 코드

  

     ....

 

}

 

 

와 같은 구조를 띈다.

 

 

switch (expression) {
  case value1:
    //Statements executed when the
    //result of expression matches value1
    [break;]
  case value2:
    //Statements executed when the
    //result of expression matches value2
    [break;]
  ...
  case valueN:
    //Statements executed when the
    //result of expression matches valueN
    [break;]
  [default:
    //Statements executed when none of
    //the values match the value of the expression
    [break;]]
}

>> 대괄호 안에 있는 것은 생략해도 괜찮다. (break를 쓰거나 case에 해당되지 않을 경우, 즉 default의 지정)

 

 

 

 

예제.

const expr = 'Papayas';
switch (expr) {
  case 'Oranges':
    console.log('Oranges are $0.59 a pound.');
    break;
  case 'Mangoes':
  case 'Papayas':
    console.log('Mangoes and papayas are $2.79 a pound.');
    // expected output: "Mangoes and papayas are $2.79 a pound."
    break;
  default:
    console.log(`Sorry, we are out of ${expr}.`);
}

 

 

** break를 쓰지 않을 경우

 

If you forget a break then the script will run from the case where the criterion is met and will run the case after that regardless if criterion was met. See example here:

 

var foo = 0;
switch (foo) {
  case -1:
    console.log('negative 1');
    break;
  case 0: // foo is 0 so criteria met here so this block will run
    console.log(0);
    // NOTE: the forgotten break would have been here
  case 1: // no break statement in 'case 0:' so this case will run as well
    console.log(1);
    break; // it encounters this break so will not continue into 'case 2:'
  case 2:
    console.log(2);
    break;
  default:
    console.log('default');
}

 

break를 해주지 않는다면 다음 case가 이어서 실행된다.

즉, 위 예제에서 case0을 만족해서 console.log(0)을 하고난 후에

case1로 넘어가게 된다. (break가 없으므로)

 

= case문 안에 break문이 없으면 조건에 부합하는지 여부를 따지지 않고 이어지는 case문을 실행하게됨.

 

 

 

 

'WEB STUDY > JAVASCRIPT' 카테고리의 다른 글

javaScript. Sort() 메서드  (0) 2021.12.20
javaScript. Label 문  (0) 2021.12.20
javaScript. break문  (0) 2021.12.20
javaScript(Node.js). readline과 fs모듈  (0) 2021.12.06
javaScript. Array(배열)  (0) 2021.12.06