
자바스크립트에서 스위치문(Switch Statement)은 특정 값에 따라 코드의 실행 흐름을 다르게 제어할 때 사용한다. 주로 선택지에 따라 결과가 달라져야 하는 경우에 활용할 수 있다. 예를 들어, SNS나 잡지에서 보는 심리 테스트처럼 선택에 따라 다른 결과가 나오는 상황에 유용하다.
스위치문은 switch 키워드를 사용하며, 비교할 값을 소괄호 안에 넣고, 각 조건에 따라 실행할 코드는 case 키워드로 구분한다. 아래는 스위치문의 기본 구조다.
switch (비교값) {
case 조건값1:
// 조건값1이 비교값과 일치할 때 실행할 코드
break;
case 조건값2:
// 조건값2가 비교값과 일치할 때 실행할 코드
break;
default:
// 비교값이 모든 조건값과 일치하지 않을 때 실행할 코드
}
switch 키워드 뒤에 비교할 값을 괄호 안에 입력한다.case 키워드 뒤에는 비교할 조건 값을 입력하고, 콜론(:) 뒤에 실행할 코드를 작성한다.break는 스위치문을 종료하는 역할을 하며, 특정 조건이 맞을 때 그 아래 조건이 모두 실행되는 것을 막는다.default 구문은 모든 조건이 맞지 않을 때 실행할 코드를 작성하며, 선택사항이지만 가독성을 위해 사용하는 것이 좋다.이제 스위치문을 활용해 SNS에서 흔히 보는 심리 테스트 예제를 작성해보자. 예를 들어, 산불 속에서 4마리의 동물 중 한 마리만 구할 수 있다고 가정했을 때, 어떤 동물을 선택하느냐에 따라 다른 결과를 출력하는 코드를 만들어 보겠다.
// 선택한 동물을 나타내는 변수 (1: 강아지, 2: 고양이, 3: 코알라, 4: 앵무새)
let choice = 2; // 여기서는 고양이를 선택했다고 가정
// 스위치문을 사용해 선택한 동물에 따라 결과 출력
switch (choice) {
case 1:
console.log("강아지를 선택한 당신, 따뜻하고 충직한 성격을 지녔군요.");
break;
case 2:
console.log("고양이를 선택한 당신, 겉은 냉정해 보이지만 속은 따뜻한 사람입니다.");
break;
case 3:
console.log("코알라를 선택한 당신, 느긋하고 여유로운 성격을 지녔네요.");
break;
case 4:
console.log("앵무새를 선택한 당신, 활발하고 사교적인 성격입니다.");
break;
default:
console.log("알 수 없는 선택입니다. 다시 선택해 주세요.");
}
이 코드는 선택지에 따라 다르게 출력되며, choice 변수가 2일 때는 고양이를 선택한 결과가 출력된다. 모든 조건이 맞지 않을 경우에는 default 문이 실행된다.
break문을 지웠을 때의 실행 흐름만약 각 case에 break문을 생략하면 어떻게 될까? 스위치문은 조건을 만족한 경우, 그 아래 모든 코드가 실행되므로, break문이 없으면 이후의 코드까지 연속적으로 실행된다.
let choice = 2; // 고양이를 선택했다고 가정
switch (choice) {
case 1:
console.log("강아지를 선택한 당신, 따뜻하고 충직한 성격을 지녔군요.");
case 2:
console.log("고양이를 선택한 당신, 겉은 냉정해 보이지만 속은 따뜻한 사람입니다.");
case 3:
console.log("코알라를 선택한 당신, 느긋하고 여유로운 성격을 지녔네요.");
case 4:
console.log("앵무새를 선택한 당신, 활발하고 사교적인 성격입니다.");
default:
console.log("알 수 없는 선택입니다. 다시 선택해 주세요.");
}
위 코드에서 choice가 2일 때는 case 2부터 모든 코드가 실행된다. 결과적으로 고양이부터 앵무새, default의 코드까지 전부 실행된다. 따라서 원치 않는 실행을 막기 위해 break문을 작성하는 것이 중요하다.
else if와의 비교스위치문은 여러 가지 선택지 중 특정 조건을 만족하는 경우를 빠르게 선택할 수 있게 도와주는 문법이다.
break문을 적절히 활용하여 원치 않는 코드가 실행되는 것을 방지할 수 있으며, 특정 조건에서만 동작하게 하는 코드를 작성할 때 유용하다.