LHJ

I'm a FE developer.

4-6. 문장(Statement) / switch

21 Nov 2020 » js_beginner

34. switch

  • 형태 :

      switch (표현식) {
          case 표현식: 문장 리스트 opt
          default : 문장 리스트 opt
      };
    
  • switch 표현식의 평가 값과 일치하는 case 문 수행

      var exp = 1;
      switch (exp) {
          case 1:
              console.log(100);
          case 2:
              console.log(200);
      }
      // 100
      // 200
    
    1. switch (exp) 에서 exp를 평가하여 값을 구하고 구한 값에 일치하는 case 문을 수행
    2. exp 값이 1 이므로 case 1: 을 수행

주의
case 1 아래의 모든 문장을 수행하므로 200이 출력됩니다.
이를 방지하려면 break 를 작성해야 합니다.

  • break 사용

      var exp = 1;
      switch (exp) {
          case 1:
              console.log(100);
              break;
          case 2:
              console.log(200);
      }
      // 100
    
    1. switch(exp) 의 값이 1 이므로 case 1: 을 수행
    2. break 문을 만나 switch 문을 빠져 나갑니다.
    3. 따라서 case 2: 를 수행하지 않게 됩니다.
  • 일치하는 case 가 없으면 default 수행

      var exp = 7, value;
      switch (exp) {
          case 1:
              value = 100;
          default:
              value = 700;
          case 2:
              value = 200;
      }
      console.log(value);
      // 200
    
    1. switch(exp) 의 값이 7 이므로 일치하는 case 가 없으며
    2. 이때 default: 코드를 실행합니다.
    3. case 2: 도 실행합니다.
    4. break 주의하자 항상!
  • OR(||) 형태

      var exp = 3;
      switch (exp) {
          case 2:
          case 3:
              console.log(100);
      }
      // 100
    
    1. exp 값이 2 또는 3이면 case 수행