[mjt] switch 사용법과 언제 사용하는지 알아보자
while문과 for문 언제 사용하는게 좋을까?
-
switch
문은 여러 조건을 처리해야 할 때 사용하는 다중 분기문이다. - 일반적으로
if-else
문보다 가독성이 높고 명확한 분기가 필요한 경우에 적합합니다.
switch 문의 기본 문법
-
표현식
: 비교 대상이 되는 값. (숫자, 문자열 등 사용 가능) -
case
: 조건을 나열하며, case 뒤의 값과 표현식을 비교함. -
break
: 조건에 맞는 분기가 실행된 후 나머지 코드를 건너뛰고 switch 문을 종료함. -
default
: 조건에 해당하지 않는 경우 실행됩니다. 선택적으로 사용 가능함.
switch (표현식) {
case 값1:
// 값1일 때 실행할 코드
break;
case 값2:
// 값2일 때 실행할 코드
break;
default:
// 모든 조건이 해당되지 않을 때 실행할 코드
}
사용 예시
2-1) 예시1: 요일 출력
switch
문으로 요일을 처리하는 예제
const day = new Date().getDay(); // 0: 일요일, 1: 월요일 ...
switch (day) {
case 0:
console.log("오늘은 일요일입니다.");
break;
case 1:
console.log("오늘은 월요일입니다.");
break;
case 2:
console.log("오늘은 화요일입니다.");
break;
default:
console.log("오늘은 주중입니다.");
}
2-2) 예시2: 숫자 계산기
사용자가 입력한 연산 기호에 따라 계산을 처리하는 예제
const a = 5;
const b = 3;
const operator = "+";
switch (operator) {
case "+":
console.log(a + b); // 8
break;
case "-":
console.log(a - b); // 2
break;
case "*":
console.log(a * b); // 15
break;
case "/":
console.log(a / b); // 1.666...
break;
default:
console.log("유효하지 않은 연산자입니다.");
}
2-3) 중첩 case 활용
여러 case
가 동일한 동작을 해야 할 때 중첩할 수 있다.
const fruit = "apple";
switch (fruit) {
case "apple":
case "banana":
console.log("이 과일은 주스에 적합합니다.");
break;
case "lemon":
console.log("이 과일은 레몬차에 적합합니다.");
break;
default:
console.log("추천할 수 없는 과일입니다.");
}
switch 문과 if-else 문의 차이
특징 | switch 문 | if-else 문 |
---|---|---|
비교 방식 | 동일한 값 비교 (===) | 다양한 조건 (범위, 논리 연산 등) 사용 가능 |
가독성 | 조건이 많을수록 읽기 쉽고 명확 | 조건이 많아지면 가독성이 떨어질 수 있음 |
유연성 | 제한된 값 비교에 적합 | 범위 비교,복잡한 논리가 필요한 경우 적합 |
기능 확장성 | case를 추가하거나 수정하기 쉽고 간단함 | 조건이 복잡할 경우 더 자유롭게 설정 가능 |
중첩 조건 처리 | 한정된 방식으로 처리 가능 (case 중첩) | 다양한 조건을 중첩하여 설정 가능 |
언제 switch 문을 사용할까?
상황 | 적합한 선택 | 이유 |
---|---|---|
조건 값이 명확하고 고정된 경우 | switch | 가독성이 좋고, 추가 및 수정이 용이함 |
조건 값이 복잡하거나 범위가 필요한 경우 | if-else | 다양한 논리와 조건 처리에 적합 |
회고
- 조건 값이 고정되어 있다면
switch
를 사용하자. - 복잡한 논리가 필요하다면
if-else
를 사용하자.