본문 바로가기
JavaScript

[자바스크립트] switch문

by 1two13 2023. 2. 7.
728x90
반응형

언제 사용할까?


  • 논리적 참, 거짓(Boolean 값) 보다는 다양한 상황에 따라 실행할 코드 블록을 결정할 때 사용한다.

 

기본 구조


switch(조건식) {
  case 비교조건식1:
    동작문1;
    break;
  case 비교조건식2:
    동작문2;
    break;
  default:
    동작문3;
}  
  • 만약 일치하는 case 값이 없다면, 마지막 default로 선언된 명령문이 실행된다.
728x90

동작 방식


  • 조건식과 비교조건식이 같으면 동작문을 실행한다.
switch (조건식) {
  case 비교조건식:
    동작문;
    break;
}  
  • 보통 조건식에 변수 넣고, 비교 조건식에는 변수와 비교할 값을 넣는다.
let value = 'A';

switch (value) {
  case 'A':
    console.log('A');
}
  • if문의 else 처럼 사용 가능하다.(default)
    • default의 위치가 맨 처음이여도 문제없이 작동한다.
let value = 'F';

switch (value) {
  default:
    console.log('뭘까요');
    break;
  case 'A':
    console.log('A');
    break;
}

// 뭘까요
  • if문의 else if 처럼 사용 가능하다.(case 여러 번 사용하기)
let value = 'B';

switch (value) {
  case 'A':
    console.log('A');
  case 'B':
    console.log('B');
  case 'C':
    console.log('C');
}

// B
// C

이 때, case 'B': 만 실행된다고 생각할 수 있으나 그 밑에까지 전부 다 실행된다.
그래서 case 'B': 만 실행하고 싶다면 break 문을 사용해야 한다.

let value = 'B';

switch (value) {
  case 'A':
    console.log('A');
  case 'B':
    console.log('B');
    break;
  case 'C':
    console.log('C');
    break;
}

// B
반응형

예제


  • if else 문을 switch 문으로 바꿔보기
function A(name) {
  if (name === "heeju") {
    return "heejuKo";
  } else if (name === "juhee") {
    return "juheeKo";
  } else {
    return false;
 }

function B(name) {
  switch(name) {
    case "heeju":
      return "heejuKo";
    case "juhee":
      return "juheeKo";
    default:
      return false;
  }
}

이 때, A 함수와 B 함수의 결과는 같다.

728x90
반응형

댓글