logo

JavaScript 스위치 문

그만큼 자바스크립트 스위치 문 표현식을 평가하고 일치하는 사례를 기반으로 코드 블록을 실행합니다. 이는 긴 if-else 체인에 대한 대안을 제공하여 특히 여러 조건부 분기를 처리할 때 가독성과 유지 관리성을 향상시킵니다.

내용의 테이블



문자열을 정수로 변환 자바

Switch 문 구문

switch (expression) {  case value1:  // code block 1;  break;  case value2:  // code block 2;  break;  ...  default:  // default code block; }>
  • Expression> 비교하려는 값입니다.
  • Case value1>,case value2>등은 가능한 값을 나타냅니다.expression>.
  • break>문은 종료switch>성명. 이것이 없으면 다음 케이스로 실행이 계속됩니다.
  • Default>일치하는 사례가 없을 경우 실행할 코드를 지정합니다.expression>.

Switch 문이 작동하는 방식

  • 평가 : 내부 표현switch>명령문은 한 번 평가됩니다.
  • 비교 : 표현식의 값을 각각 비교합니다.case>라벨(엄격한 평등 사용===>).
  • 실행 : 일치하는 항목이 발견되면 일치하는 항목 뒤에 해당 코드 블록이 표시됩니다.case>라벨이 실행됩니다. 일치하는 항목이 없으면 실행이 다음으로 이동합니다.default>케이스(존재하는 경우) 또는 케이스 이후의 다음 명령문으로 계속됩니다.switch>차단하다.
  • Break 문 : 코드 블록을 실행한 후break>문은 종료switch>문을 실행하여 후속 사례로 실행이 넘어가는 것을 방지합니다. 만약에break>생략하면 다음 사례로 실행이 계속됩니다(폴스루(fall-through)라고 함).
  • 기본 케이스 :default>케이스는 선택 사항입니다. 일치하는 항목이 없으면 아래의 코드 블록default>실행됩니다.

Switch 문의 흐름도

Switch 문 예:

여기서는 3일째의 요일 이름을 인쇄하겠습니다.

자바스크립트
let day = 3; let dayName; switch (day) {  case 1:  dayName = 'Monday';  break;  case 2:  dayName = 'Tuesday';  break;  case 3:  dayName = 'Wednesday';  break;  case 4:  dayName = 'Thursday';  break;  case 5:  dayName = 'Friday';  break;  case 6:  dayName = 'Saturday';  break;  case 7:  dayName = 'Sunday';  break;  default:  dayName = 'Invalid day'; } console.log(dayName); // Output: Wednesday>

산출
Wednesday>

설명:

  • Day>로 설정되어 있습니다3>.
  • 그만큼switch>명령문은 평가합니다day>.
  • 부터day>~이다3>,case 3>블록이 실행되어 할당됩니다.'Wednesday'>에게dayName>.
  • 그만큼break>진술은 끝납니다switch>문을 실행하여 다른 경우로 실행이 계속되는 것을 방지합니다.

Switch 문 예:

여기서는 스위치 케이스를 사용하여 등급을 확인하겠습니다.

자바스크립트
let grade = 'B'; let result; switch (grade) {  case 'A':  result = 'A (Excellent)';  break;  case 'B':  result = 'B (Average)';  break;  case 'C':  result = 'C (Below than average)';  break;  default:  result = 'No Grade'; } console.log(result);>

산출
B (Average)>

설명:

  • Grade>값이 할당됩니다'B'>.
  • 그만큼switch>문은 다음의 가치를 평가합니다.grade>.
  • 부터grade>~이다'B'>, 다음 코드 블록case 'B':>실행됩니다.
  • 그만큼result>변수에 문자열이 할당됩니다'B (Average)'>.
  • 그만큼break>문은 종료switch>성명.
  • result>콘솔에 기록되어 출력됩니다.'B (Average)'>.

브레이크 키워드

그만큼break>키워드는 루프 실행을 종료하는 데 사용됩니다.switch>성명.

기본 키워드

그만큼default>키워드는switch>다음 중 어느 것도 없을 때 대체 옵션으로 사용되는 문case>표현식이 평가되는 값과 일치합니다. 이는 다음과 유사하게 작동합니다.else>진술서if...else>체인은 일치하는 다른 특정 사례가 없을 때 수행할 기본 작업을 제공합니다.

기본 사례의 위치는 중요하지 않습니다.

배치에 관계없이 기본 케이스는 다른 케이스 조건이 충족되지 않는 경우에만 실행됩니다. 따라서 시작, 중간 또는 끝에 배치해도 핵심 논리는 변경되지 않습니다(폴스루라는 덜 일반적인 기술을 사용하지 않는 한).

기본 케이스를 인쇄하겠습니다.

해시셋 자바
자바스크립트
let day = 8; let dayName; switch (day) {  default:  dayName = 'Invalid day';  break;  case 1:  dayName = 'Monday';  break;  case 2:  dayName = 'Tuesday';  break;  case 3:  dayName = 'Wednesday';  break;  case 4:  dayName = 'Thursday';  break;  case 5:  dayName = 'Friday';  break;  case 6:  dayName = 'Saturday';  break;  case 7:  dayName = 'Sunday';  break;   } console.log(dayName);>

산출
Invalid day>

공통 코드 블록

어떤 경우에는 여러 스위치 케이스에 동일한 코드를 사용해야 합니다. 이를 수행하는 방법의 예를 살펴보겠습니다.

공통 코드 블록 예:

여기서는 두 가지 다른 스위치 케이스에 대해 동일한 코드 블록을 사용합니다.

자바스크립트
let grade = 'A' let result; switch (grade) {  case 'A':  result = 'Grade is excellent'  break;  case 'B':  result = 'Grade is good'  break;  case 'C':  result = 'Grade is Average '  break;  case 'D':  result = 'Grade is Poor'  break;  default:  text = 'NO grades achieved'; } console.log(result)>

산출
Grade is excellent>

설명:

  • Grade>값이 할당됩니다'A'>.
  • 그만큼switch>문은 다음의 가치를 평가합니다.grade>.
  • 부터grade>성냥'A'>, 다음 코드 블록case 'A':>실행, 설정result>에게'Grade is excellent'>.
  • 그만큼break>문은 종료switch>성명.
  • Result>콘솔에 기록되어 출력됩니다.'Grade is excellent'>.

메모: 여러 개의 스위치 케이스가 값과 일치하면 첫 번째 스위치 케이스가 실행됩니다.