Topic 1: if문과 조건 분기 🔀
학습 목표
- if문의 기본 구조와 동작 원리를 이해할 수 있다
- 단순 if문, if-else문, if-else if-else문을 구분하여 사용할 수 있다
- 실생활 문제를 조건문으로 해결할 수 있다
조건문이 필요한 이유
프로그램도 현실처럼 선택을 해야 합니다!
실생활의 선택:
- ☔ 비가 오면 → 우산을 가져간다
- 🌞 날씨가 좋으면 → 산책을 한다
- 🎮 시험이 끝나면 → 게임을 한다
프로그램의 선택:
if (비가_온다) {
우산_챙기기();
} else {
선글라스_챙기기();
}
단순 if문
조건이 참일 때만 실행되는 가장 기본적인 조건문입니다.
#include <iostream>
using namespace std;
int main() {
int score = 85;
if (score >= 80) {
cout << "우수한 성적입니다!" << endl;
cout << "장학금 대상자입니다." << endl;
}
cout << "프로그램이 계속 실행됩니다." << endl;
return 0;
}
실행 흐름:
score >= 80
조건을 확인- 조건이 참이면
{ }
안의 코드 실행 - 조건이 거짓이면
{ }
안의 코드를 건너뜀 - if문 이후의 코드 계속 실행
if-else문 - 양자택일
조건이 참일 때와 거짓일 때 각각 다른 동작을 수행합니다.
#include <iostream>
using namespace std;
int main() {
int age;
cout << "나이를 입력하세요: ";
cin >> age;
if (age >= 19) {
cout << "성인입니다." << endl;
cout << "투표권이 있습니다." << endl;
} else {
cout << "미성년자입니다." << endl;
cout << "보호자 동의가 필요합니다." << endl;
}
cout << "확인이 완료되었습니다." << endl;
return 0;
}
if-else if-else - 다중 선택
여러 개의 조건을 순차적으로 검사하여 해당하는 조건의 코드를 실행합니다.
#include <iostream>
using namespace std;
int main() {
int score;
cout << "점수를 입력하세요: ";
cin >> score;
if (score >= 90) {
cout << "학점: A (탁월)" << endl;
} else if (score >= 80) {
cout << "학점: B (우수)" << endl;
} else if (score >= 70) {
cout << "학점: C (보통)" << endl;
} else if (score >= 60) {
cout << "학점: D (미흡)" << endl;
} else {
cout << "학점: F (재수강)" << endl;
}
cout << "성적 처리가 완료되었습니다." << endl;
return 0;
}
중요한 특징:
- 위에서부터 순서대로 조건을 검사
- 첫 번째로 참인 조건의 코드만 실행하고 나머지는 건너뜀
else
는 모든 조건이 거짓일 때 실행 (선택사항)
조건문 활용 예제
홀수/짝수 판별
#include <iostream>
using namespace std;
int main() {
int number;
cout << "정수를 입력하세요: ";
cin >> number;
if (number % 2 == 0) {
cout << number << "는 짝수입니다." << endl;
} else {
cout << number << "는 홀수입니다." << endl;
}
return 0;
}
절댓값 구하기
#include <iostream>
using namespace std;
int main() {
int number;
cout << "정수를 입력하세요: ";
cin >> number;
int absoluteValue;
if (number >= 0) {
absoluteValue = number;
} else {
absoluteValue = -number;
}
cout << number << "의 절댓값은 " << absoluteValue << "입니다." << endl;
return 0;
}
온도 상태 판별
#include <iostream>
using namespace std;
int main() {
double temperature;
cout << "현재 기온(°C)을 입력하세요: ";
cin >> temperature;
if (temperature >= 30) {
cout << "매우 덥습니다. 🔥" << endl;
cout << "충분한 수분 섭취를 하세요." << endl;
} else if (temperature >= 20) {
cout << "따뜻합니다. ☀️" << endl;
cout << "활동하기 좋은 날씨입니다." << endl;
} else if (temperature >= 10) {
cout << "시원합니다. 🍃" << endl;
cout << "가벼운 겉옷을 준비하세요." << endl;
} else if (temperature >= 0) {
cout << "춥습니다. ❄️" << endl;
cout << "따뜻하게 입고 나가세요." << endl;
} else {
cout << "매우 춥습니다. 🧊" << endl;
cout << "외출을 자제하고 보온에 신경 쓰세요." << endl;
}
return 0;
}
조건문의 일반적인 실수
실수 1: 대입 연산자와 비교 연산자 혼동
// ❌ 잘못된 코드
if (x = 5) { // 대입 연산자! x에 5를 대입하고 항상 참
cout << "x는 5입니다" << endl;
}
// ✅ 올바른 코드
if (x == 5) { // 비교 연산자! x와 5를 비교
cout << "x는 5입니다" << endl;
}
실수 2: 세미콜론 실수
// ❌ 잘못된 코드
if (x > 0); // 세미콜론으로 인해 빈 문장
cout << "양수입니다." << endl; // 항상 실행됨
// ✅ 올바른 코드
if (x > 0) // 세미콜론 없음
cout << "양수입니다." << endl; // 조건에 따라 실행
실습 과제
기초 실습
- 사용자로부터 숫자를 입력받아 양수, 음수, 0인지 판별하는 프로그램을 작성해보세요.
- 두 개의 정수를 입력받아 더 큰 수를 출력하는 프로그램을 작성해보세요.
심화 실습
- 사용자의 나이를 입력받아 다음과 같이 분류하는 프로그램을 작성해보세요:
- 0~12세: 어린이
- 13~19세: 청소년
- 20~59세: 성인
- 60세 이상: 노인
핵심 포인트
- 단순 if문: 조건이 참일 때만 실행
- if-else문: 참/거짓 두 가지 경우 모두 처리
- if-else if-else문: 여러 조건을 순차적으로 검사
- 실행 흐름: 조건 검사 → 해당 블록 실행 → 이후 코드 계속 실행
- 주의사항:
=
(대입)과==
(비교) 구분, 세미콜론 위치 주의
다음 토픽에서는 조건문에서 사용하는 비교 연산자와 논리 연산자에 대해 자세히 배워보겠습니다.
✅ if문과 조건 분기 체크리스트
Last updated on