Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 의사 결정 구조 완벽 가이드: if-else와 switch 문 활용법

프로그래밍에서 의사 결정(Decision Making) 구조는 프로그램이 특정 조건을 평가·검사한 뒤, 그 결과에 따라 서로 다른 코드를 실행하도록 만드는 핵심 메커니즘입니다. 프로그래머는 하나 이상의 조건을 지정하고, 조건이 참(true)일 때 실행할 문장을 작성합니다. 필요에 따라 조건이 거짓(false)일 때 실행할 문장도 추가로 지정할 수 있습니다.

대부분의 프로그래밍 언어에서 사용되는 일반적인 의사 결정 구조의 흐름은 다음과 같습니다.

C++ 의사 결정 구조 완벽 가이드: if-else와 switch 문 활용법

if-else 문

if 문 뒤에는 선택적으로 else 문을 붙일 수 있으며, else 블록은 불리언 표현식이 거짓일 때 실행됩니다. C++에서 if...else 문의 기본 문법은 다음과 같습니다.

if(boolean_expression) {
    // 불리언 표현식이 참일 때 실행되는 문장
} else {
    // 불리언 표현식이 거짓일 때 실행되는 문장
}

예제 코드

#include <iostream>
using namespace std;

int main () {
    // 지역 변수 선언
    int a = 100;

    // 조건 검사
    if( a < 20 ) {
        // 조건이 참이면 아래 문장 실행
        cout << "a is less than 20;" << endl;
    } else {
        // 조건이 거짓이면 아래 문장 실행
        cout << "a is not less than 20;" << endl;
    }
    cout << "value of a is : " << a << endl;
    return 0;
}

실행 결과

a is not less than 20;
value of a is : 100

위 예제에서 변수 a의 값은 100이므로 a < 20이라는 조건은 거짓이 됩니다. 따라서 else 블록의 문장이 실행되어 "a is not less than 20;"이 출력된 것을 확인할 수 있습니다.

switch-case 문

switch 문은 하나의 변수 값을 여러 개의 값 목록과 비교하여 동등 여부를 검사할 때 사용합니다. 이때 비교 대상이 되는 각각의 값을 케이스(case)라고 부르며, switch 문으로 넘겨진 변수는 각 케이스와 순차적으로 비교됩니다. C++에서 switch 문의 문법은 다음과 같습니다.

switch(expression) {
    case constant-expression :
        statement(s);
        break; // 생략 가능
    case constant-expression :
        statement(s);
        break; // 생략 가능

    // 원하는 만큼 case 문을 추가할 수 있습니다.
    default : // 선택 사항
        statement(s);
}

예제 코드

#include <iostream>
using namespace std;

int main () {
    // 지역 변수 선언
    char grade = 'D';

    switch(grade) {
        case 'A' :
            cout << "Excellent!" << endl;
            break;
        case 'B' :
        case 'C' :
            cout << "Well done" << endl;
            break;
        case 'D' :
            cout << "You passed" << endl;
            break;
        case 'F' :
            cout << "Better try again" << endl;
            break;
        default :
            cout << "Invalid grade" << endl;
    }
    cout << "Your grade is " << grade << endl;
    return 0;
}

실행 결과

You passed
Your grade is D

위 예제에서 변수 grade의 값은 'D'이므로, 해당하는 case 'D' 블록이 실행되어 "You passed"가 출력됩니다. 또한 case 'B'와 case 'C'처럼 여러 케이스를 묶어 동일한 문장을 실행할 수도 있다는 점이 눈에 띕니다. 어떤 case에도 해당하지 않으면 default 블록이 실행되며, 각 case 끝의 break 문은 switch 문을 즉시 빠져나가는 역할을 합니다.