JavaScript 스위치 문

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'> .

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