C++/입문편

5강. Switch/Case문 기본 개념 설명 및 코드 예시를 살펴보자

쉽코딩 2023. 1. 22.

 

 

 

 

switch/case 문

 

 

 

Switch - Case 기본 구조

C++에서 "switch" 문은 식의 값에 따라 다른 작업을 수행할 수 있도록 하는 제어 흐름 문입니다. 여러 "if-else" 문을 사용하는 대신 사용할 수 있습니다. C++에서 "switch" 문의 기본 구문은 다음과 같습니다.

switch (expression) {
    case value1:
        // code to be executed if expression == value1
        break;
    case value2:
        // code to be executed if expression == value2
        break;
    // ...
    default:
        // code to be executed if expression does not match any of the cases
        break;
}

표현식이 평가되고 case 문의 값과 비교됩니다. 일치하는 항목이 발견되면 해당 코드 블록이 실행됩니다. break 문은 switch 문을 종료하고 다음 case 문의 실행을 방지하는 데 사용됩니다. 일치하는 항목이 없으면 기본 블록의 코드가 실행됩니다(있는 경우).

 

Switch - Case  번호 입력 예시

다음은 C++의 번호(1, 2, 3, default) 유형에 따른 switch 문의 예입니다.

#include <iostream>

int main() {
    int x = 2;
    switch (x) {
        case 1:
            std::cout << "x is 1" << std::endl;
            break;
        case 2:
            std::cout << "x is 2" << std::endl;
            break;
        case 3:
            std::cout << "x is 3" << std::endl;
            break;
        default:
            std::cout << "x is not 1, 2 or 3" << std::endl;
            break;
    }
    return 0;
}

 

이 프로그램의 출력은 다음과 같습니다.

x is 2

 

switch 문의 식은 정수, 문자 또는 열거형이어야 합니다. 또한 case 값은 정수, 문자 또는 열거형이어야 하며 상수 표현식이어야 합니다. 그렇지 않으면 프로그램에서 컴파일 오류가 발생합니다.

또한 여러 케이스 레이블을 사용할 수 있습니다.

 

Switch - Case  문자열 입력 예시

숫자 대신 문자열을 입력으로 사용하는 switch 문입니다.

switch (input) {
    case "option1":
        // code to be executed if input is "option1"
        break;
    case "option2":
        // code to be executed if input is "option2"
        break;
    case "option3":
        // code to be executed if input is "option3"
        break;
    default:
        // code to be executed if input is not "option1", "option2", or "option3"
        break;
}

 

Switch - Case  단일 논리 구조 예시

case 문 내에서 식을 사용하고 단일 논리에 대해 여러 사례를 사용할 수도 있습니다.

switch (true) {
    case (input > 0 && input < 10):
        // code to be executed if input is between 1 and 9
        break;
    case (input >= 10 && input < 20):
        // code to be executed if input is between 10 and 19
        break;
    case (input >= 20):
        // code to be executed if input is greater than or equal to 20
        break;
    default:
        // code to be executed if input is negative
        break;
}

댓글