학습
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를 증가시키지 않으면 무한 루프 발생
}
주의사항: 반복문 내에서 조건을 만족시키는 변수를 업데이트해야 합니다.