본문 바로가기
GD's IT Lectures : 기초부터 시리즈/C, C++ 기초부터 ~

[C/C++ 프로그래밍] 6. 조건문

by GDNGY 2023. 5. 15.

Chapter 6. 조건문

'조건문'은 프로그래밍에서 매우 중요한 개념입니다. 조건문은 특정 조건에 따라 다른 코드 블록이 실행되게 하는 데 사용됩니다. 즉, 프로그램의 흐름을 제어하는 역할을 합니다.
'if문'은 가장 기본적인 조건문입니다. 이는 단순한 조건에 따라 두 가지 다른 결과를 생성합니다. 조건이 참이면 해당 코드 블록이 실행되고, 그렇지 않으면 실행되지 않습니다.
'if-else문'은 조건이 참인 경우와 그렇지 않은 경우 두 가지 결과를 제공합니다. 이는 if문에 비해 더 많은 유연성을 제공합니다.
'if-else if-else문'은 여러 조건을 체크할 수 있습니다. 이는 두 개 이상의 조건이 있는 복잡한 시나리오에서 유용합니다.
'switch-case문'은 여러 가지 경우 중 하나를 선택할 수 있게 해 줍니다. 이는 특정 변수의 가능한 값에 따라 다른 결과를 제공하게 합니다.

 


 

반응형

 


[Chapter 6. 조건문]


6.1. 조건문이란?
6.1.1. 조건문의 개념
6.1.2. 조건문의 필요성

6.2. if문
6.2.1. if문의 기본 구조
6.2.2. if문의 활용

6.3. if-else문
6.3.1. if-else문의 기본 구조
6.3.2. if-else문의 활용

6.4. if-else if-else문
6.4.1. if-else if-else문의 기본 구조
6.4.2. if-else if-else문의 활용

6.5. switch-case문
6.5.1. switch-case문의 기본 구조
6.5.2. switch-case문의 활용

6.6. 조건문을 사용한 프로그램 예제
6.6.1. 간단한 메뉴 선택 프로그램 작성
6.6.2. 학점 계산 프로그램 작성

6.7. 조건문에 대한 고급 주제
6.7.1. 조건문과 불린(Boolean) 자료형
6.7.2. 중첩된 조건문

 


6.1. 조건문이란?

조건문은 말 그대로 어떠한 조건에 따라 프로그램의 실행 흐름을 변경하고자 할 때 사용하는 제어문입니다. 프로그램의 실행 흐름을 분기하는 역할을 하므로 분기문이라고도 부릅니다.

 

6.1.1. 조건문의 개념

조건문은 프로그램이 특정 조건을 검사한 후, 그 결과에 따라 다른 동작을 수행하도록 하는 구문입니다. C/C++에서는 주로 'if', 'if-else', 'switch-case' 등의 구문을 사용하여 조건문을 구성합니다.

 

예를 들어, C/C++에서 가장 기본적인 조건문인 'if'문의 기본 구조는 아래와 같습니다.

 

[예제]

if (condition) {
    // 실행할 코드
}

 

여기서 'condition'은 참(true)이나 거짓(false)을 반환하는 조건 표현식입니다. 이 조건이 참인 경우에만 중괄호({}) 안의 코드가 실행됩니다. 만약 거짓인 경우에는 이를 건너뜁니다.

 

6.1.2. 조건문의 필요성

조건문 없이 프로그래밍을 한다면, 프로그램은 항상 동일한 순서로 코드를 실행하게 됩니다. 이는 실제 세계의 복잡한 문제를 해결하는 데에 제한적일 수밖에 없습니다. 조건문을 통해 프로그램에 논리적인 분기를 만들어, 다양한 상황에 따라 다른 동작을 수행하도록 할 수 있습니다. 이는 프로그램을 훨씬 유연하고 효율적으로 만들어줍니다.

 

예를 들어, 사용자가 입력한 숫자가 양수인지 음수인지 판별하는 간단한 프로그램을 작성한다고 가정해 봅시다.

 

[예제]

#include <iostream>
using namespace std;

int main() {
    int number;
    cout << "Enter a number: ";
    cin >> number;

    if (number >= 0) {
        cout << "The number is positive.";
    } else {
        cout << "The number is negative.";
    }

    return 0;
}

 

위의 예제에서 조건문이 없다면, 사용자가 입력한 숫자가 양수인지 음수인지를 판별하는 것이 불가능해집니다. 이처럼 조건문은 프로그램의 논리적인 흐름을 결정하는 중요한 역할을 담당합니다.

 


6.2. if문

'if'는 '만약 ~라면'이라는 뜻을 가진 영어 단어로, 프로그래밍에서도 동일한 개념으로 사용됩니다. 'if'문은 주어진 조건이 참일 경우에만 해당 코드 블록을 실행하는 제어문입니다.

6.2.1. if문의 기본 구조

'if'문의 기본적인 구조는 아래와 같습니다.

 

[예제]

if (condition) {
    // 실행할 코드
}

 

여기서 'condition'은 참(true)이나 거짓(false)을 판별할 수 있는 조건 표현식입니다. 이 조건이 참(true)인 경우에만 중괄호({}) 안의 코드가 실행됩니다. 만약 거짓(false)인 경우에는 이를 건너뜁니다.

 

6.2.2. if문의 활용

'if'문은 매우 다양한 상황에서 사용될 수 있습니다. 가장 간단한 예로, 어떤 숫자가 10보다 큰지 판단하는 코드를 작성해 보겠습니다.

 

[예제]

#include <iostream>
using namespace std;

int main() {
    int number = 15;
    if (number > 10) {
        cout << "The number is greater than 10.";
    }

    return 0;
}

 

위 예제에서 'number > 10'이라는 조건이 참이므로, 'The number is greater than 10.'이라는 문장이 출력됩니다.

 

'if'문은 하나의 조건만을 검사하므로, 여러 조건을 체크하려면 여러 'if'문을 연속해서 사용할 수 있습니다. 이 때 각 'if'문은 독립적으로 동작하며, 앞선 'if'문의 결과에 영향을 받지 않습니다. 이러한 사용 방법은 'if-else if-else'문에서 더욱 확장됩니다.

 


6.3. if-else문

'if-else'문은 'if'문의 확장형으로, 주어진 조건이 참일 경우에는 한 코드 블록을 실행하고, 거짓일 경우에는 다른 코드 블록을 실행하는 제어문입니다.

6.3.1. if-else문의 기본 구조

'if-else'문의 기본적인 구조는 아래와 같습니다.

 

[예제]

if (condition) {
    // 조건이 참일 때 실행할 코드
} else {
    // 조건이 거짓일 때 실행할 코드
}

 

'condition'은 참(true)이나 거짓(false)을 판별할 수 있는 조건 표현식입니다. 이 조건이 참인 경우 'if' 블록 내의 코드가 실행되고, 거짓인 경우 'else' 블록 내의 코드가 실행됩니다.

 

6.3.2. if-else문의 활용

'if-else'문은 주어진 조건에 따라 두 가지 다른 동작을 수행하려는 경우에 유용합니다. 예를 들어, 어떤 숫자가 짝수인지 홀수인지 판별하는 코드를 작성해 보겠습니다.

[예제]

#include <iostream>
using namespace std;

int main() {
    int number = 17;
    if (number % 2 == 0) {
        cout << "The number is even.";
    } else {
        cout << "The number is odd.";
    }

    return 0;
}

 

위 예제에서 'number % 2 == 0'이라는 조건이 거짓이므로, 'else' 블록의 'The number is odd.'라는 문장이 출력됩니다.

 

'if-else'문은 하나의 조건에 대해 두 가지 다른 결과를 출력하므로, 두 가지 선택지 중 하나를 선택해야 하는 상황에 많이 사용됩니다. 이러한 사용 방법은 'if-else if-else'문에서 더욱 확장됩니다.

 


6.4. if-else if-else문

"if-else if-else"문은 조건이 여러 개일 때 사용합니다. 여러 조건 중 하나만 충족하면 그에 해당하는 코드 블록을 실행하며, 나머지 조건은 무시합니다.

6.4.1. if-else if-else문의 기본 구조

"if-else if-else"문의 기본 구조는 아래와 같습니다.

 

[예제]

if (조건1) {
    // 조건1이 참일 때 실행되는 코드
} else if (조건2) {
    // 조건1이 거짓이고 조건2가 참일 때 실행되는 코드
} else {
    // 모든 조건이 거짓일 때 실행되는 코드
}


6.4.2. if-else if-else문의 활용

이제 "if-else if-else"문을 활용한 예제를 보겠습니다. 학생의 점수에 따라 등급을 결정하는 프로그램을 만들어보겠습니다.

 

[예제]

#include <iostream>
using namespace std;

int main() {
    int score;
    cout << "Enter your score: ";
    cin >> score;

    if (score >= 90) {
        cout << "You got an A!";
    } else if (score >= 80) {
        cout << "You got a B!";
    } else if (score >= 70) {
        cout << "You got a C!";
    } else if (score >= 60) {
        cout << "You got a D!";
    } else {
        cout << "You failed.";
    }

    return 0;
}

 

위 프로그램은 사용자로부터 점수를 입력 받고, 그 점수에 따라 다른 메시지를 출력합니다. 조건은 위에서부터 순서대로 평가되고, 처음으로 참인 조건의 코드 블록이 실행됩니다. 이후의 조건들은 검사되지 않습니다.

 

이처럼 "if-else if-else"문은 다양한 조건을 효과적으로 처리하는 데 사용됩니다. 이해하기 쉬운 코드를 작성하려면 이 구조를 잘 활용해야 합니다.

 


6.5. switch-case문

switch-case문은 여러 조건 중 하나를 선택하여 그에 해당하는 코드 블록을 실행하는 조건문입니다. 기본적으로 특정 변수의 값을 기준으로 여러 가지 경우의 수를 처리할 때 유용하게 사용됩니다.

 

6.5.1. switch-case문의 기본 구조

switch-case문의 기본 구조는 아래와 같습니다.

 

[예제]

switch (변수) {
    case 값1:
        // 변수가 값1일 때 실행되는 코드
        break;
    case 값2:
        // 변수가 값2일 때 실행되는 코드
        break;
    default:
        // 변수가 어느 case의 값과도 일치하지 않을 때 실행되는 코드
}


6.5.2. switch-case문의 활용

이제 switch-case문을 활용한 예제를 살펴보겠습니다. 사용자로부터 주문한 메뉴 번호를 입력받아 그에 따른 음료를 출력하는 프로그램을 만들어 보겠습니다.

 

[예제]

#include <iostream>
using namespace std;

int main() {
    int menuNumber;
    cout << "Enter the number of the menu you want: ";
    cin >> menuNumber;

    switch (menuNumber) {
        case 1:
            cout << "You ordered coffee.";
            break;
        case 2:
            cout << "You ordered tea.";
            break;
        case 3:
            cout << "You ordered soda.";
            break;
        default:
            cout << "Invalid menu number.";
    }

    return 0;
}


위 프로그램은 사용자로부터 메뉴 번호를 입력받고, 해당 번호에 따라 다른 메시지를 출력합니다. 메뉴 번호가 1이면 커피, 2이면 차, 3이면 소다를 주문한 것으로 간주하고, 이외의 번호는 유효하지 않은 메뉴 번호로 간주합니다.

 

switch-case문은 간단한 메뉴 시스템이나 상태 머신 등을 구현하는 데 매우 유용합니다. 조건이 명확하게 분리되어 있고 이들 각각에 대한 코드가 별도로 처리되어야 할 때 사용하면 좋습니다.

 


6.6. 조건문을 사용한 프로그램 예제

조건문은 프로그램 내에서 다양한 상황을 처리하는 데 중요한 역할을 합니다. 이번 섹션에서는 실제 프로그램에서 조건문이 어떻게 활용될 수 있는지 알아보겠습니다.

 

6.6.1. 간단한 메뉴 선택 프로그램 작성

우리는 이미 switch-case문을 사용하여 간단한 메뉴 선택 프로그램을 작성하는 방법을 살펴보았습니다. 이번에는 if-else문을 사용하여 같은 프로그램을 작성해보겠습니다.

 

[예제]

#include <stdio.h>

int main() {
    int menuNumber;
    printf("Enter the number of the menu you want: ");
    scanf("%d", &menuNumber);

    if (menuNumber == 1) {
        printf("You ordered coffee.\n");
    } else if (menuNumber == 2) {
        printf("You ordered tea.\n");
    } else if (menuNumber == 3) {
        printf("You ordered soda.\n");
    } else {
        printf("Invalid menu number.\n");
    }

    return 0;
}

 

위 코드는 C 언어를 사용한 버전입니다. if-else문은 switch-case문과 마찬가지로 다양한 조건을 처리할 수 있습니다.

 

6.6.2. 학점 계산 프로그램 작성

이제는 학생의 점수를 입력받아 해당하는 학점을 출력하는 프로그램을 작성해보겠습니다. 이 예제는 if-else if-else문을 사용합니다.

 

[예제]

#include <iostream>
using namespace std;

int main() {
    float score;
    cout << "Enter your score: ";
    cin >> score;

    if (score >= 90.0) {
        cout << "Your grade is A.\n";
    } else if (score >= 80.0) {
        cout << "Your grade is B.\n";
    } else if (score >= 70.0) {
        cout << "Your grade is C.\n";
    } else if (score >= 60.0) {
        cout << "Your grade is D.\n";
    } else {
        cout << "Your grade is F.\n";
    }

    return 0;
}

 

이 프로그램은 사용자로부터 점수를 입력받고, 그 점수에 해당하는 학점을 출력합니다. 여기서는 다양한 범위의 점수를 처리하기 위해 if-else if-else문을 사용했습니다.

 

조건문은 프로그램에서 중요한 역할을 합니다. 복잡한 조건을 처리하거나 다양한 경우의 수를 다루는 등 프로그램의 실행 흐름을 제어하는 데 필수적인 도구입니다.

 


6.7. 조건문에 대한 고급 주제

조건문에 대한 고급 주제로 불린(Boolean) 자료형과 관련된 조건문, 그리고 중첩된 조건문에 대해 알아봅니다. 불린 자료형과 조건문의 관계를 이해하면 프로그램의 실행 흐름을 보다 명확하게 제어할 수 있습니다. 또한 중첩된 조건문을 통해 복잡한 조건을 처리하고 다양한 경우의 수를 다루는 방법을 배울 수 있습니다. 

 

6.7.1. 조건문과 불린(Boolean) 자료형

조건문은 결국 true(참) 또는 false(거짓)의 불린(Boolean) 값을 반환하는 연산자나 함수를 통해 동작합니다. C/C++에서는 불린(Boolean) 값을 위해 bool 자료형을 사용합니다. bool 자료형은 true 또는 false라는 두 가지 값을 가질 수 있습니다.

예를 들어, 다음과 같이 조건문을 사용하여 불린 값을 테스트할 수 있습니다.

 

[예제]

#include <stdio.h>

int main() {
    bool is_true = true;
    
    if (is_true) {
        printf("This is true!\n");
    } else {
        printf("This is not true!\n");
    }

    return 0;
}


위 코드는 is_true라는 불린 변수가 true일 경우 "This is true!"를 출력하고, 아니면 "This is not true!"를 출력합니다.

 

6.7.2. 중첩된 조건문

조건문은 중첩되어 사용될 수 있습니다. 즉, 하나의 조건문 안에 또 다른 조건문이 포함될 수 있습니다. 이를 통해 복잡한 조건을 처리하거나 다양한 경우의 수를 다루는 등 프로그램의 실행 흐름을 더욱 세밀하게 제어할 수 있습니다.

 

[예제]

#include <iostream>
using namespace std;

int main() {
    int number;
    cout << "Enter a number: ";
    cin >> number;

    if (number > 0) {
        cout << "The number is positive.\n";
        if (number % 2 == 0) {
            cout << "And the number is even.\n";
        } else {
            cout << "And the number is odd.\n";
        }
    } else {
        cout << "The number is not positive.\n";
    }

    return 0;
}

 

이 C++ 코드는 사용자로부터 입력받은 숫자가 양수인지와 짝수인지를 판단합니다. 첫 번째 if문은 숫자가 양수인지를 판단하고, 그 안의 또 다른 if-else문은 숫자가 짝수인지 홀수인지를 판단합니다.

 

 

 

2023.05.15 - [GD's IT Lectures : 기초부터 시리즈/C, C++ 기초부터 ~] - [C/C++ 프로그래밍] 5. 연산자

 

[C/C++ 프로그래밍] 5. 연산자

5. 연산자 연산자는 어떤 작업을 수행하는 데 사용되는 기호 또는 키워드입니다. 우리는 우리의 프로그램에서 데이터를 조작하고, 결과를 얻기 위해 연산자를 사용합니다. 이 장에서는 C/C++에서

gdngy.tistory.com

 

반응형

댓글