자바스크립트에서 스위치문(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
문을 적절히 활용하여 원치 않는 코드가 실행되는 것을 방지할 수 있으며, 특정 조건에서만 동작하게 하는 코드를 작성할 때 유용하다.