switch
문은 다른 조건에 따라 다른 작업을 수행하는 데 사용된다.
switch
문을 사용하여 실행할 많은 코드 블록 중 하나를 선택한다.Switch Statement
Syntax
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
작동 방식은 다음과 같다:
switch
표현식은 한 번 평가된다.
getDay()
메서드는 요일을 0에서 6 사이의 숫자로 반환한다.
(일요일=0, 월요일=1, 화요일=2 ..)
아래 예시에서는 요일 번호를 사용하여 요일 이름을 계산한다.<!DOCTYPE html> <html> <body> <h2>JavaScript switch</h2> <p id="demo"></p> <script> let day; switch (new Date().getDay()) { case 0: day = "Sunday"; break; case 1: day = "Monday"; break; case 2: day = "Tuesday"; break; case 3: day = "Wednesday"; break; case 4: day = "Thursday"; break; case 5: day = "Friday"; break; case 6: day = "Saturday"; } document.getElementById("demo").innerHTML = "Today is " + day; </script> </body> </html>
The break Keyword
JavaScript가 break 키워드에 도달하면
switch
블록에서 나온다.
이렇게 하면 switch 블록 내에서 실행이 중지된다.
스위치 블록의 마지막 case를break
할 필요는 없다. 어쨌든 블록은 거기서 끊긴다.
참고:
break
문을 생략하면 평가가 케이스와 일치하지 않아도 다음 케이스가 실행된다.The default Keyword
default
키워드는 case가 일치하지 않는 경우 실행할 코드를 지정한다.
getDay()
메서드는 요일을 0에서 6 사이의 숫자로 반환한다.
오늘이 토요일(6)도 일요일(0)도 아닌 경우의 기본 메시지를 작성한다:
default
케이스가 꼭 스위치 블록의 마지막 케이스일 필요는 없다.
default
가switch
블록의 마지막 케이스가 아닌 경우default
case를break
으로 끝내야 한다는 것을 잊지 말자.
때로는 다른 switch
case가 동일한 코드(결과)를 사용하기를 원할 수 있다..
아래 예시의 경우 4와 5, 그리고 0과 6은 각각 같은 코드 블록을 공유합니다.
여러 case가 한 case의 값과 일치하는 경우 첫 번째 케이스가 선택된다.
일치하는 case가 없으면 프로그램은 default
label로 이어진다.
default
label이 없으면 프로그램은 switch
이후의 명령문을 계속 진행한다.
switch
case는 strict 비교(===)를 사용한다.
값의 type
이 같아야 한다..
엄격한 비교(strict comparison)는 피연산자가 같은 유형인 경우에만 true
가 될 수 있다.
아래 예시에서는 x
에 대해 일치하는 항목이 없다.