switch
문은 if
문의 특수한 케이스에 활용할 수 있다.
if
문은 주로 boolean
값으로 판단하는 반면,
switch
문은 표현식을 평가하고 표현식 의 값을 case
절과 일치시키고
해당 케이스와 연관된 명령문과 일치하는 케이스 뒤에 오는 케이스의 명령문을 실행한다.
const test = (employee) => {
let answer
switch(employee.name){
case "james":
answer = "web";
break;
case "aiden":
answer = "R&D";
break;
default:
answer = "없는 직원입니다."
}
return answer
}
기본적인 사용법은 다음과 같다.
switch에 변수나 표현식, 즉 조건을 넣고 중괄호 내부에 여러가지 설정 case
를 작성한다.
그리고 모든 case
절이 일치하지 않을 때 실행되는 default
절이 있다.
위 코드에서는 employee의 name 속성이 "james"
인 경우, "aiden"
인 경우마다 행동할 코드를 작성했다.
여기서 각 case
에는 break
를 사용해야 한다.
그렇지 않으면 일치한 case
절의 행동을 실행한 뒤, 다음 case
절로 넘어가게 된다.
마지막 default
절까지 확인하여 실행된다.
보통은 case
절이 일치하였을 때 default
절 까지 실행하지는 않을 것이다.
그러니, 이를 피하기 위해서는 break
나 return
을 사용하자
return
은 함수 실행을 종료하고, 함수를 빠져 나온다.break
는 현재 루프 즉, switch 나 for, while 등을 종료하고 루프에서 빠져나온다.둘의 차이점은 함수 안에 작성된 루프 안에서 break
가 쓰였다면,
break
를 감싸고 있는 루프를 빠져 나가고 함수 밖으로는 나가지 않는다.
return
은 함수 실행을 종료하고 함수를 호출한 곳으로 실행 흐름을 옮긴다.