C++ 제어문 마스터: 프로그램의 논리를 만드는 조건문 활용법
안녕하세요! Coding by Head입니다. 프로그램이 똑똑하게 판단하고 동작하게 하려면 '조건문(Conditional Statements)'을 잘 다뤄야 합니다. 오늘은 C++에서 제공하는 다양한 조건문의 종류와 상황에 맞는 선택 기준을 정리해 보겠습니다.

1. if, else if, else문: 가장 유연한 판단 도구
if문은 조건식이 참(true)인지 거짓(false)인지에 따라 실행 여부를 결정합니다. 범위(Range)를 비교하거나 복잡한 논리 연산이 필요할 때 주로 사용합니다.
기본 구조와 예제
#include <iostream>
using namespace std;
int main() {
int score;
cout << "점수를 입력하세요 (0-100): ";
cin >> score;
if (score >= 90) {
cout << "Grade: A" << endl;
} else if (score >= 80) {
cout << "Grade: B" << endl;
} else {
cout << "Grade: C 이하" << endl;
}
return 0;
}
2. switch문: 명확한 값의 분기 처리
switch문은 변수의 값이 특정 상수와 일치하는지 비교할 때 사용합니다. if문보다 가독성이 좋고, 경우에 따라 컴파일러 최적화(Jump Table)를 통해 더 빠른 속도를 제공합니다.
주의사항: break의 역할
break를 생략하면 다음 case로 실행 흐름이 넘어가는 Fall-through 현상이 발생합니다. 의도한 것이 아니라면 반드시 사용해야 합니다.
#include <iostream>
using namespace std;
int main() {
char grade;
cout << "학점을 입력하세요 (A, B, C): ";
cin >> grade;
switch (grade) {
case 'A':
cout << "우수합니다!" << endl;
break;
case 'B':
cout << "잘하셨습니다." << endl;
break;
default:
cout << "재수강 대상일 수 있습니다." << endl;
}
return 0;
}
3. 삼항 연산자 (Ternary Operator): 코드의 간결화
단순한 참/거짓 판단을 한 줄로 끝내고 싶을 때 사용합니다. 코드가 간결해지지만, 너무 복잡하게 쓰면 가독성을 해칠 수 있습니다.
- 문법: (조건) ? 참일_때_값 : 거짓일_때_값;
int a = 10, b = 20;
int max = (a > b) ? a : b; // 더 큰 값을 변수에 대입
💡 임베디드 개발 팁 (Coding by Head)
임베디드 시스템처럼 리소스가 제한적인 환경에서는 switch문이 if-else 체인보다 코드 최적화에 유리할 때가 많습니다. 특히 상태 머신(State Machine)을 구현할 때는 switch-case와 enum을 조합하는 방식이 표준처럼 쓰입니다.
4. [심화] 조건문 사용 시 흔히 하는 실수
- =와 == 혼동: if (x = 10)은 대입 연산이므로 항상 참이 됩니다. 비교는 반드시 ==를 사용하세요.
- 중괄호 { } 생략: 실행문이 한 줄이라도 중괄호를 사용하는 습관을 들이면 나중에 코드를 추가할 때 발생하는 버그를 막을 수 있습니다.
마치며
이번 포스팅에서는 C++ 조건문의 핵심 개념과 실무적인 활용법을 다뤘습니다. 조건문은 단순히 문법을 아는 것보다 '어떤 상황에 어떤 문법을 쓰는 것이 효율적인가'를 고민하는 것이 실력의 차이를 만듭니다.
다음 포스팅에서는 프로그램의 반복되는 작업을 자동화하는 반복문(for, while)에 대해 알아보겠습니다. 궁금한 점은 댓글로 남겨주세요!
'Core Programming > Modern C++ & System Design' 카테고리의 다른 글
| C++ 함수 완벽 가이드: 선언과 정의부터 매개변수 전달 방식(Call by Reference)까지 (0) | 2024.12.18 |
|---|---|
| C++ 반복문 완벽 가이드: for, while, do-while 차이점과 활용법 (0) | 2024.12.18 |
| C++ 입출력 완벽 가이드: cin, cout부터 파일 입출력 및 소수점 제어까지 (0) | 2024.12.17 |
| C++ 기초: 데이터 타입 총정리 및 변수 선언법 (int, double, static 변수) (0) | 2024.12.17 |
| C++ 시작하기: Windows & Linux 개발 환경 설정부터 Hello World까지 완벽 가이드 (0) | 2024.12.17 |