웹사이트 검색

JavaScript에서 Switch 문을 사용하는 방법


소개

조건문은 모든 프로그래밍 언어에서 가장 유용하고 공통적인 기능 중 하나입니다. How To Write Conditional Statements in JavaScript에서는 if, elseelse if 키워드를 사용하여 프로그램 흐름을 제어하는 방법을 설명합니다. JavaScript에서 종종 사용자 입력의 결과인 다른 조건.

if...else 외에도 JavaScript에는 switch 문이라는 기능이 있습니다. switch는 여러 가능한 경우에 대해 표현식을 평가하고 일치하는 경우에 따라 하나 이상의 코드 블록을 실행하는 조건문 유형입니다. switch 문은 많은 else if 블록을 포함하는 조건문과 밀접하게 관련되어 있으며 종종 상호 교환하여 사용할 수 있습니다.

이 자습서에서는 switch 문을 사용하는 방법과 관련 키워드 case, break 및 <를 사용하는 방법을 배웁니다. 코드>기본값. 마지막으로 switch 문에서 여러 사례를 사용하는 방법을 살펴보겠습니다.

스위치

switch 문은 식을 평가하고 일치하는 사례의 결과로 코드를 실행합니다. 기본 구문은 if 문의 구문과 유사합니다. 테스트할 식을 포함하는 괄호와 실행할 잠재적 코드를 포함하는 중괄호와 함께 항상 switch() {}로 작성됩니다.

다음은 두 개의 case 문과 default로 알려진 폴백이 있는 switch 문의 예입니다.

switch (expression) {
	case x:
		// execute case x code block
		break;
	case y:
		// execute case y code block
		break;
	default:
		// execute default code block
}

위 코드 블록의 논리에 따라 발생하는 일련의 이벤트는 다음과 같습니다.

  • 식이 평가됩니다.
  • 첫 번째 casex는 식에 대해 테스트됩니다. 일치하면 코드가 실행되고 break 키워드는 switch 블록을 종료합니다.
  • 일치하지 않으면 x를 건너뛰고 y의 경우가 표현식에 대해 테스트됩니다. y가 식과 일치하면 코드가 실행되고 switch 블록에서 종료됩니다.
  • 일치하는 사례가 없으면 기본 코드 블록이 실행됩니다.

위의 구문을 따르는 switch 문의 작업 예제를 만들어 봅시다. 이 코드 블록에서 new Date() 메서드를 사용하여 현재 요일을 찾고 getDay()를 사용하여 현재 요일에 해당하는 숫자를 인쇄합니다. 0은 일요일을 의미하고 6은 토요일을 의미합니다. 변수를 설정하는 것으로 시작하겠습니다.

const day = new Date().getDay();

스위치를 사용하여 매일 콘솔에 메시지를 보냅니다. 프로그램은 일치하는 항목을 찾기 위해 위에서 아래로 순서대로 실행되며 일치하는 항목이 발견되면 break 명령은 switch 블록이 계속해서 명령문을 평가하는 것을 중지합니다.

// Set the current day of the week to a variable, with 0 being Sunday and 6 being Saturday
const day = new Date().getDay();

switch (day) {
	case 0:
		console.log("It's Sunday, time to relax!");
		break;
	case 1:
		console.log("Happy Monday!");
		break;
	case 2:
		console.log("It's Tuesday. You got this!");
		break;
	case 3:
		console.log("Hump day already!");
		break;
	case 4:
		console.log("Just one more day 'til the weekend!");
		break;
	case 5:
		console.log("Happy Friday!");
		break;
	case 6:
		console.log("Have a wonderful Saturday!");
		break;
	default:
		console.log("Something went horribly wrong...");
}
Output
'Just one more day 'til the weekend!'

이 코드는 4에 해당하는 목요일에 테스트되었으므로 콘솔 출력은 주말까지 하루만 더!였습니다. 코드를 테스트하는 요일에 따라 출력이 달라집니다. 오류 발생 시 실행할 default 블록을 마지막에 포함시켰습니다. 이 경우에는 일주일에 7일만 있기 때문에 오류가 발생하지 않아야 합니다. 또한 예를 들어 월요일부터 금요일까지의 결과만 출력할 수 있고 default 블록은 주말에 대해 동일한 메시지를 가질 수 있습니다.

각 문에서 break 키워드를 생략했다면 다른 case 문은 true로 평가되지 않지만 프로그램은 끝에 도달할 때까지 계속 확인했을 것입니다. . 프로그램을 더 빠르고 효율적으로 만들기 위해 break를 포함합니다.

스위치 범위

위의 예에서와 같이 단일 값이 아닌 switch 블록의 값 범위를 평가해야 하는 경우가 있을 수 있습니다. 식을 true로 설정하고 각 case 문 내에서 작업을 수행하여 이를 수행할 수 있습니다.

더 쉽게 이해할 수 있도록 친숙한 예를 사용하겠습니다. 조건문 자습서에서 우리는 다음 요구 사항에 따라 숫자 점수를 받아 문자 등급으로 변환하는 채점 앱을 만들었습니다.

  • 90점 이상은 A입니다
  • 80~89점은 B입니다.
  • 70~79점은 C입니다.
  • 60~69점은 D입니다.
  • 59점 이하는 F입니다.

이제 switch 문으로 작성할 수 있습니다. 범위를 확인하고 있으므로 각 case에서 작업을 수행하여 각 표현식이 true로 평가되는지 확인한 다음 <에 대한 요구 사항이 충족되면 명령문을 중단합니다.true가 만족되었습니다.

// Set the student's grade
const grade = 87;

switch (true) {
	// If score is 90 or greater
	case grade >= 90:
		console.log("A");
		break;
	// If score is 80 or greater
	case grade >= 80:
		console.log("B");
		break;
	// If score is 70 or greater
	case grade >= 70:
		console.log("C");
		break;
	// If score is 60 or greater
	case grade >= 60:
		console.log("D");
		break;
	// Anything 59 or below is failing
	default:
		console.log("F");
}
Output
'B'

이 예에서 평가할 괄호 안의 표현식은 true입니다. 이것은 true로 평가되는 모든 case가 일치한다는 것을 의미합니다.

else if와 마찬가지로 switch는 위에서 아래로 평가되며 첫 번째 진정한 일치가 허용됩니다. 따라서 우리의 grade 변수가 87이고 따라서 C와 D에 대해서도 true로 평가되더라도 첫 번째 일치 항목은 B입니다. 출력이 됩니다.

여러 사례

여러 경우에 동일한 출력이 있어야 하는 코드가 발생할 수 있습니다. 이를 달성하기 위해 각 코드 블록에 대해 하나 이상의 case를 사용할 수 있습니다.

이를 테스트하기 위해 이번 달을 적절한 계절에 일치시키는 작은 응용 프로그램을 만들 것입니다. 먼저 new Date() 메서드를 사용하여 현재 월에 해당하는 숫자를 찾고 이를 month 변수에 적용합니다.

const month = new Date().getMonth();

new Date().getMonth() 메서드는 0에서 11까지의 숫자를 출력하며 0은 1월이고 11은 12월입니다. 이 발행 시점에서 월은 8에 해당하는 9월입니다.

우리의 애플리케이션은 단순화를 위해 다음 사양으로 사계절을 출력합니다.

  • 겨울: 1월, 2월, 3월
  • 봄: 4월, 5월, 6월
  • 여름: 7월, 8월, 9월
  • 가을: 10월, 11월, 12월

아래는 우리의 코드입니다.


// Get number corresponding to the current month, with 0 being January and 11 being December
const month = new Date().getMonth();

switch (month) {
	// January, February, March
	case 0:
	case 1:
	case 2:
		console.log("Winter");
		break;
	// April, May, June
	case 3:
	case 4:
	case 5:
		console.log("Spring");
		break;
	// July, August, September
	case 6:
	case 7:
	case 8:
		console.log("Summer");
		break;
	// October, November, December
	case 9:
	case 10:
	case 11:
		console.log("Autumn");
		break;
	default:
		console.log("Something went wrong.");
}

코드를 실행하면 위의 사양을 기반으로 현재 시즌을 식별하는 출력을 받게 됩니다.

Output
Summer

게시 시점의 현재 월은 8이며, 이는 시즌 출력이 \Summer\case 문 중 하나에 해당합니다.

결론

이번 글에서는 조건문의 일종인 switch 문에 대해 알아보았습니다. 조건문의 일종으로 표현식을 평가하여 일치하는 결과에 따라 다른 값을 출력하는 것입니다. 범위 및 여러 case 문을 사용하여 switch 문을 검토했습니다.

switch에 대해 자세히 알아보려면 Mozilla 개발자 네트워크에서 검토할 수 있습니다.