switch (표현식) {
case 값1:
// 표현식이 값1과 일치할 때 실행될 코드
break;
case 값2:
// 표현식이 값2와 일치할 때 실행될 코드
break;
case 값3:
// 표현식이 값3과 일치할 때 실행될 코드
break;
default:
// 어떤 case도 일치하지 않을 때 실행될 코드
}
2️⃣ switch 문의 사용 방법
switch 문의 괄호 안에 비교할 표현식(변수)을 작성합니다.
case 키워드 옆에는 표현식과 일치 여부를 비교할 값을 작성합니다.
case 키워드 다음 문장에는 표현식이 case의 값과 일치할 때 실행할 코드를 작성합니다.
default는 어떤 case에도 해당되지 않을 경우에 실행됩니다.
각 case의 끝에 break를 작성해 해당 case만 실행하고 switch 문을 종료합니다.
break를 작성하지 않으면 일치하는 case를 실행한 후, 다음 case도 이어서 실행합니다.
const season = 'summer';
switch (season) {
case 'spring':
console.log('봄에는 쑥을 드세요.');
case 'summer':
console.log('여름에는 수박을 드세요.');
case 'autumn':
console.log('가을에는 사과를 드세요.');
case 'winter':
console.log('겨울에는 딸기를 드세요.');
default:
console.log('계절을 입력해 주세요.');
}
// 결과
여름에는 수박을 드세요.
가을에는 사과를 드세요.
겨울에는 딸기를 드세요.
계절을 입력해 주세요.
season의 값이 'summer'이므로, '여름에는 수박을 드세요.'가 출력됩니다.
코드에 break가 없기 때문에, summer 이후의 case도 모두 순차적으로 실행됩니다.
break를 사용하면 각 계절에 맞는 메시지만 출력하고 switch 문을 종료할 수 있습니다.
const season = 'summer';
switch (season) {
case 'spring':
console.log('봄에는 쑥을 드세요.');
break;
case 'summer':
console.log('여름에는 수박을 드세요.');
break;
case 'autumn':
console.log('가을에는 사과를 드세요.');
break;
case 'winter':
console.log('겨울에는 딸기를 드세요.');
break;
default:
console.log('계절을 입력해 주세요.');
}
// 결과
여름에는 수박을 드세요.
season의 값이 'summer'이므로, '여름에는 수박을 드세요.'가 출력됩니다.
문장 출력 후 break를 만나 switch 문 전체가 종료됩니다.
➕ 여러 case에서 같은 코드를 실행해야 할 경우
같은 코드를 실행하는 조건을 그룹화해서 중복 코드를 줄일 수 있습니다.
같은 그룹의 case를 연속으로 나열하고, case의 본문을 생략합니다.
그룹의 마지막 case 내에 공통으로 실행할 코드를 작성합니다.
각 그룹의 마지막에 break를 작성해 switch 문을 종료합니다.
const grade = 'B';
switch (grade) {
case 'A+':
case 'A':
case 'A-':
console.log('훌륭합니다!');
break;
case 'B+':
case 'B':
case 'B-':
console.log('잘했습니다!');
break;
default:
console.log('노력이 필요합니다.');
}
if (조건1) {
// 조건1이 참일 때 실행될 코드
} else if (조건2) {
// 조건1이 거짓이고, 조건2가 참일 때 실행될 코드
} else if (조건3) {
// 조건1, 조건2가 거짓이고, 조건3이 참일 때 실행될 코드
} else if (조건4) {
// 조건1, 조건2, 조건3이 거짓이고, 조건4가 참일 때 실행될 코드
} else {
// 모든 조건이 거짓일 때 실행될 코드
}
첫 번째 조건이 거짓일 경우, else if로 추가한 조건들을 순차적으로 평가합니다.
조건이 참인 else if 절을 만나면, 해당 절의 코드를 실행하고 if...else 문을 종료합니다.