IMCAT.DEV
로그인 가입
C++ 입문 문법

C++ 제어문 (조건문과 반복문)

C++ 제어문 (조건문과 반복문) — 초급

제어문 (조건문과 반복문)

1. 도입 (왜 배워야 하는가)

제어문은 프로그래밍의 뼈대와 같은 요소로, 조건에 따라 코드의 흐름을 제어하거나 반복적으로 작업을 수행할 수 있게 해줍니다. 실무에서 조건문과 반복문을 잘 활용하지 못하면, 복잡한 로직을 구현할 수 없고, 프로그램의 효율성이나 가독성이 떨어지는 문제에 직면할 수 있습니다. 예를 들어, 쇼핑몰 시스템에서 고객의 장바구니에 담긴 상품이 특정 조건을 만족할 때 할인을 적용해야 할 경우, 조건문을 통해 이를 구현하지 않으면 원하는 기능을 만들 수 없습니다.

2. 핵심 개념 설명

조건문

조건문은 주어진 조건이 참인지 거짓인지에 따라 코드의 실행 흐름을 결정합니다. 가장 일반적인 조건문으로는 if, else if, else가 있습니다.

비유하자면, 당신이 친구와 함께 영화관에 가는 상황을 생각해보세요. "비가 오면 우산을 가져가고, 비가 안 오면 그냥 간다." 이와 같이 조건에 따라 행동을 결정하는 것이 조건문의 역할입니다.

반복문

반복문은 특정 작업을 여러 번 반복해서 수행할 수 있게 해줍니다. 가장 일반적인 반복문으로는 for, while, do while이 있습니다.

실생활에서 예를 들어, "매일 아침 7시에 일어나서 운동하기"라는 목표가 있을 때, 이 목표를 달성하기 위해 매일 같은 행동을 반복하는 것과 같습니다.

용어설명
if주어진 조건이 참일 때 실행되는 코드 블록
else if첫 번째 조건이 거짓일 때 다음 조건을 검사
else모든 조건이 거짓일 때 실행되는 코드 블록
for주어진 횟수만큼 반복하는 반복문
while주어진 조건이 참일 때 계속 반복하는 반복문

3. 기본 코드 예제

조건문 예제

#include <iostream>
using namespace std;

int main() {
    int score = 85;

    if (score >= 90) {
        cout << "A학점입니다." << endl; // 조건이 참일 때 실행
    } else if (score >= 80) {
        cout << "B학점입니다." << endl; // 첫 번째 조건이 거짓이고 두 번째가 참일 때 실행
    } else {
        cout << "C학점입니다." << endl; // 모든 조건이 거짓일 때 실행
    }

    return 0;
}

실행 결과:

B학점입니다.
  • int score = 85; : 점수를 변수에 저장합니다.
  • if (score >= 90) : 점수가 90 이상인지 확인합니다.
  • else if (score >= 80) : 점수가 80 이상인지 확인합니다.
  • 해당 조건에 맞는 메시지를 출력합니다.
  • 반복문 예제

    #include <iostream>
    using namespace std;
    
    int main() {
        for (int i = 1; i <= 5; i++) {
            cout << "안녕하세요, " << i << "번째 인사입니다." << endl; // 5번 반복
        }
    
        return 0;
    }

    실행 결과:

    안녕하세요, 1번째 인사입니다.
    안녕하세요, 2번째 인사입니다.
    안녕하세요, 3번째 인사입니다.
    안녕하세요, 4번째 인사입니다.
    안녕하세요, 5번째 인사입니다.
  • for (int i = 1; i <= 5; i++) : 1부터 5까지 반복합니다.
  • cout << "안녕하세요, " << i << "번째 인사입니다." : 반복문 내에서 인사를 출력합니다.
  • 4. 실전 활용 예제

    예제 1: 쇼핑몰 장바구니 할인 적용

    #include <iostream>
    using namespace std;
    
    int main() {
        int itemCount = 5;
        double totalPrice = 150.0;
    
        if (itemCount > 3) {
            totalPrice *= 0.9; // 10% 할인
            cout << "10% 할인 적용! 최종 가격: " << totalPrice << "원" << endl;
        } else {
            cout << "할인 없음. 최종 가격: " << totalPrice << "원" << endl;
        }
    
        return 0;
    }

    상황 설명: 장바구니에 담긴 상품 수가 3개를 초과하면 10% 할인이 적용됩니다.

    예제 2: 학생 성적 판별

    #include <iostream>
    using namespace std;
    
    int main() {
        int score;
    
        cout << "점수를 입력하세요: ";
        cin >> score;
    
        if (score >= 60) {
            cout << "합격입니다." << endl;
        } else {
            cout << "불합격입니다." << endl;
        }
    
        return 0;
    }

    상황 설명: 학생의 점수를 입력받아 합격 여부를 판별합니다.

    5. 흔한 실수와 주의사항

    실수 1: 조건문 블록의 중괄호 생략

    if (score >= 90)
        cout << "A학점입니다." << endl;  // 조건문 블록이 하나일 경우 중괄호 생략 가능
    else
        cout << "B학점입니다." << endl;  // 하지만 여러 줄일 경우 반드시 중괄호 필요

    주의사항: 여러 줄의 코드를 조건문 아래에 작성할 경우 중괄호를 꼭 사용해야 합니다.

    실수 2: 반복문 무한 루프

    int i = 0;
    while (i < 5) {
        cout << "반복 중입니다." << endl; // i를 증가시키지 않으면 무한 루프 발생
    }

    주의사항: 반복문 내에서 조건을 만족시키는 변수를 업데이트해야 합니다.

    6. 정리

  • 제어문을 사용하여 조건에 따라 코드의 흐름을 제어할 수 있다.
  • 반복문을 통해 특정 작업을 반복적으로 수행할 수 있다.
  • 조건문과 반복문은 실무에서 자주 사용되며, 효율적인 코드 작성을 도와준다.
  • 다음에 학습하면 좋은 주제: 함수, 배열, 클래스와 객체.