코딩 스쿨 JavaScript

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP
▶ JavaScript Tutorial
JavaScript HOME
JavaScript Introduction
JavaScript Where To
JavaScript Output
JavaScript Statements
JavaScript Syntax
JavaScript Comments
JavaScript Variables
JavaScript Let
JavaScript Const
JavaScript Operators
JavaScript Arithmetic
JavaScript Assignment
JavaScript Data Types
JavaScript Functions
JavaScript Objects
JavaScript Object Properties
JavaScript Object Methods
JavaScript Object Display
JavaScript Object Constructors
JavaScript Events
JavaScript Strings
JavaScript String Methods
JavaScript String Search
JavaScript String Templates
JavaScript Numbers
JavaScript BigInt
JavaScript Number Methods
JavaScript Number Properties
JavaScript Arrays
JavaScript Array Methods
JavaScript Array Search
JavaScript Array Sort
JavaScript Array Iteration
JavaScript Array Const
JavaScript Dates
JavaScript Date Formats
JavaScript Date Get Methods
JavaScript Date Set Methods
JavaScript Math
JavaScript Random
JavaScript Booleans
JavaScript Comparisons
JavaScript If Else
JavaScript Switch
JavaScript Loop For
JavaScript Loop For In
JavaScript Loop For Of
JavaScript Loop While
JavaScript Break
JavaScript Iterables
JavaScript Sets
JavaScript Set Methods
JavaScript Maps
JavaScript Map Methods
JavaScript Typeof
JavaScript Type Conversion
JavaScript Destructuring
JavaScript Bitwise
JavaScript RegExp
JavaScript Precedence
JavaScript Errors
JavaScript Scope
JavaScript Hoisting
JavaScript Strict Mode
JavaScript this Keyword
JavaScript Arrow Function
JavaScript Classes
JavaScript Modules
JavaScript JavaScriptON
JavaScript Debugging
JavaScript Style Guide
JavaScript Best Practices
JavaScript Mistakes
JavaScript Performance
JavaScript Reserved Words

JavaScript Switch

JavaScript Switch: 선택문을 통한 조건 분기

JavaScript에서 switch여러 조건을 처리할 때 사용하는 제어 구조입니다. if...else 문과 달리, switch 문은 하나의 표현식(값)을 여러 값과 비교하여 각 값에 해당하는 코드 블록을 실행합니다. 이 구조는 많은 조건을 효율적으로 처리할 수 있어, 특히 여러 경우의 수가 있을 때 가독성을 높여줍니다.

이 가이드는 JavaScript의 switch을 사용하여 조건을 분기하고, 그 활용 방법을 설명합니다.


1. 기본 switch

switch은 하나의 표현식을 평가하고, 그 결과와 일치하는 **case**에 해당하는 코드를 실행합니다.

1.1. 기본 구문

switch (표현식) {
    case 값1:
        // 표현식이 값1과 일치할 때 실행
        break;
    case 값2:
        // 표현식이 값2와 일치할 때 실행
        break;
    default:
        // 위의 어느 값과도 일치하지 않을 때 실행
}

  • break: case 블록이 실행된 후 switch 문을 빠져나가도록 합니다. break가 없으면 다음 case가 연속적으로 실행될 수 있습니다.
  • default: 어떤 case와도 일치하지 않는 경우 실행되는 블록입니다. 선택사항이지만, 모든 경우를 처리하기 위해 자주 사용됩니다.

2. switch 문 사용 예시

2.1. 요일에 따른 출력

아래 예시는 현재 요일에 따라 서로 다른 메시지를 출력하는 예시입니다.

const day = new Date().getDay(); // 0 = 일요일, 1 = 월요일, ..., 6 = 토요일

switch (day) {
    case 0:
        console.log("일요일입니다.");
        break;
    case 1:
        console.log("월요일입니다.");
        break;
    case 2:
        console.log("화요일입니다.");
        break;
    case 3:
        console.log("수요일입니다.");
        break;
    case 4:
        console.log("목요일입니다.");
        break;
    case 5:
        console.log("금요일입니다.");
        break;
    case 6:
        console.log("토요일입니다.");
        break;
    default:
        console.log("알 수 없는 요일입니다.");
}

2.2. default 블록의 활용

default 블록은 어떤 case와도 일치하지 않을 때 실행됩니다.

const fruit = "banana";

switch (fruit) {
    case "apple":
        console.log("사과입니다.");
        break;
    case "orange":
        console.log("오렌지입니다.");
        break;
    default:
        console.log("해당하지 않는 과일입니다.");
}
// 출력: "해당하지 않는 과일입니다."


3. break와 연속 실행 (Fall-Through)

break 문을 생략하면, 조건이 일치한 case 이후의 모든 case 블록이 연속적으로 실행됩니다. 이를 fall-through라고 하며, 의도적으로 여러 case를 그룹화할 때 유용할 수 있습니다.

3.1. break가 없는 경우

const grade = 'B';

switch (grade) {
    case 'A':
        console.log("우수한 성적입니다.");
    case 'B':
        console.log("좋은 성적입니다.");
    case 'C':
        console.log("보통 성적입니다.");
    default:
        console.log("다시 노력하세요.");
}
// 출력:
// 좋은 성적입니다.
// 보통 성적입니다.
// 다시 노력하세요.

3.2. break를 사용하여 제어

위 예시에서 break를 추가하면, 원하는 case에서 switch 문을 빠져나갈 수 있습니다.

switch (grade) {
    case 'A':
        console.log("우수한 성적입니다.");
        break;
    case 'B':
        console.log("좋은 성적입니다.");
        break;
    case 'C':
        console.log("보통 성적입니다.");
        break;
    default:
        console.log("다시 노력하세요.");
}
// 출력: "좋은 성적입니다."


4. 여러 값 처리하기

switch 문에서 여러 case를 같은 코드 블록으로 처리할 수 있습니다. 같은 결과를 도출하는 여러 조건을 처리할 때 유용합니다.

4.1. 여러 case의 동일한 처리

const value = 2;

switch (value) {
    case 1:
    case 2:
    case 3:
        console.log("1부터 3 사이의 값입니다.");
        break;
    default:
        console.log("1부터 3 사이가 아닌 값입니다.");
}
// 출력: "1부터 3 사이의 값입니다."


5. 조건식에서 switch 문 사용하기

switch 문에서는 정수, 문자열, 부울 값 등을 비교할 수 있습니다. 숫자뿐만 아니라, 문자열을 포함한 다양한 표현식도 사용할 수 있습니다.

5.1. 문자열 조건 비교

const status = "pending";

switch (status) {
    case "success":
        console.log("성공하였습니다.");
        break;
    case "pending":
        console.log("처리 중입니다.");
        break;
    case "failed":
        console.log("실패하였습니다.");
        break;
    default:
        console.log("알 수 없는 상태입니다.");
}
// 출력: "처리 중입니다."


6. switch 문과 객체 비교

JavaScript에서 객체는 기본적으로 참조 타입이므로, switch 문에서 객체를 비교할 때는 참조가 동일한지 여부를 기준으로 판단합니다. 즉, 두 객체가 같은 내용이라도 참조가 다르면 같지 않다고 평가됩니다.

6.1. 객체 비교 예시

const obj1 = { name: "Alice" };
const obj2 = { name: "Alice" };

switch (obj1) {
    case obj2:
        console.log("두 객체가 같습니다.");
        break;
    default:
        console.log("두 객체가 다릅니다.");
}
// 출력: "두 객체가 다릅니다." (참조가 다르기 때문)


7. if...elseswitch 비교

  • if...else: 더 복잡한 조건을 처리할 때 유리합니다. 범위, 논리 연산 등 다양한 표현식을 사용할 수 있습니다.
  • switch: 하나의 값이나 표현식을 여러 값과 비교할 때, 코드가 더 간결하고 가독성이 좋습니다.

7.1. if...else를 사용할 때

const fruit = "banana";

if (fruit === "apple") {
    console.log("사과입니다.");
} else if (fruit === "orange") {
    console.log("오렌지입니다.");
} else {
    console.log("해당하지 않는 과일입니다.");
}

7.2. 동일한 switch

switch (fruit) {
    case "apple":
        console.log("사과입니다.");
        break;
    case "orange":
        console.log("오렌지입니다.");
        break;
    default:
        console.log("해당하지 않는 과일입니다.");
}


요약

  • switch: 하나의 표현식을 다양한 값과 비교하여 조건에 맞는 코드를 실행합니다.
  • break: switch 문을 빠져나가도록 하여 **연속 실행(fall-through)**을 방지합니다.
  • default: 어느 조건에도 일치하지 않을 때 실행되는 블록입니다.
  • 여러 값 처리: 같은 결과를 도출하는 여러 case를 함께 처리할 수 있습니다.

switch 문은 여러 가지 값을 비교해야 할 때 가독성유지보수성이 좋습니다. 특히, 많은 경우의 수를 처리할 때 유용하며, 특정 조건에 따라 코드를 효율적으로 분기할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com