제어문
2025. 3. 27. 23:05ㆍProgramming Languages/C++
제어문
제어문은 프로그램의 실행 흐름을 제어하는 구문으로, 조건에 따라 코드를 실행하거나 반복 실행하는 데 사용됩니다. C++에서는 조건문(if, switch)과 반복문(for, while, do-while)의 두 가지 주요 유형의 제어문을 제공합니다.
3.1 조건문
3.1.1 if 문
if 문은 주어진 조건이 참(true)일 때 코드 블록을 실행합니다.
기본 구문:
if (조건식) {
// 조건이 참일 때 실행되는 코드
}
예제:
#include <iostream>
int main() {
int num = 10;
if (num > 0) {
std::cout << "양수입니다." << std::endl;
}
return 0;
}
3.1.2 if-else 문
if-else 문은 조건이 참일 때와 거짓일 때 각각 다른 코드 블록을 실행합니다.
기본 구문:
if (조건식) {
// 조건이 참일 때 실행되는 코드
} else {
// 조건이 거짓일 때 실행되는 코드
}
예제:
#include <iostream>
int main() {
int num = -5;
if (num > 0) {
std::cout << "양수입니다." << std::endl;
} else {
std::cout << "양수가 아닙니다." << std::endl;
}
return 0;
}
3.1.3 if-else if-else 문
여러 조건을 순차적으로 검사하고 해당하는 조건의 코드 블록을 실행합니다.
기본 구문:
if (조건식1) {
// 조건식1이 참일 때 실행되는 코드
} else if (조건식2) {
// 조건식1이 거짓이고 조건식2가 참일 때 실행되는 코드
} else if (조건식3) {
// 조건식1, 조건식2가 거짓이고 조건식3이 참일 때 실행되는 코드
} else {
// 모든 조건식이 거짓일 때 실행되는 코드
}
예제:
#include <iostream>
int main() {
int score = 85;
if (score >= 90) {
std::cout << "A 학점" << std::endl;
} else if (score >= 80) {
std::cout << "B 학점" << std::endl;
} else if (score >= 70) {
std::cout << "C 학점" << std::endl;
} else if (score >= 60) {
std::cout << "D 학점" << std::endl;
} else {
std::cout << "F 학점" << std::endl;
}
return 0;
}
3.1.4 중첩 if 문
if 문 안에 다른 if 문을 포함하여 더 복잡한 조건 검사를 구현할 수 있습니다.
기본 구문:
if (외부_조건) {
// 외부 조건이 참일 때 실행
if (내부_조건) {
// 외부 조건과 내부 조건이 모두 참일 때 실행
} else {
// 외부 조건은 참이지만 내부 조건은 거짓일 때 실행
}
} else {
// 외부 조건이 거짓일 때 실행
}
예제:
#include <iostream>
int main() {
int age = 25;
bool hasLicense = true;
if (age >= 18) {
std::cout << "성인입니다." << std::endl;
if (hasLicense) {
std::cout << "운전이 가능합니다." << std::endl;
} else {
std::cout << "면허증이 필요합니다." << std::endl;
}
} else {
std::cout << "미성년자입니다." << std::endl;
}
return 0;
}
3.1.5 조건 연산자 (삼항 연산자)
조건에 따라 값을 선택하는 간결한 구문입니다.
기본 구문:
결과 = (조건) ? 참일_때_값 : 거짓일_때_값;
예제:
#include <iostream>
int main() {
int a = 10, b = 20;
int max = (a > b) ? a : b; // b가 더 크므로 max = 20
std::cout << "더 큰 값: " << max << std::endl;
// if-else와 동일한 결과
if (a > b) {
max = a;
} else {
max = b;
}
return 0;
}
3.1.6 switch 문
여러 가능한 값 중 하나를 기반으로 다른 코드 블록을 실행합니다.
기본 구문:
switch (표현식) {
case 값1:
// 표현식이 값1과 같을 때 실행
break;
case 값2:
// 표현식이 값2와 같을 때 실행
break;
// 더 많은 case...
default:
// 표현식이 어떤 case와도 일치하지 않을 때 실행
}
예제:
#include <iostream>
int main() {
int day = 3;
switch (day) {
case 1:
std::cout << "월요일" << std::endl;
break;
case 2:
std::cout << "화요일" << std::endl;
break;
case 3:
std::cout << "수요일" << std::endl;
break;
case 4:
std::cout << "목요일" << std::endl;
break;
case 5:
std::cout << "금요일" << std::endl;
break;
case 6:
std::cout << "토요일" << std::endl;
break;
case 7:
std::cout << "일요일" << std::endl;
break;
default:
std::cout << "잘못된 입력" << std::endl;
}
return 0;
}
switch 문 특징:
- switch 표현식은 정수 타입(int, char, enum 등)이어야 합니다.
- case 값은 상수 표현식이어야 합니다.
- break가 없으면 다음 case로 "폴스루(fall-through)"됩니다.
- default 케이스는 선택 사항이지만 일반적으로 권장됩니다.
의도적인 폴스루 예제:
#include <iostream>
int main() {
int day = 6; // 토요일
switch (day) {
case 1: // 월요일
case 2: // 화요일
case 3: // 수요일
case 4: // 목요일
case 5: // 금요일
std::cout << "평일입니다." << std::endl;
break;
case 6: // 토요일
case 7: // 일요일
std::cout << "주말입니다." << std::endl;
break;
default:
std::cout << "잘못된 입력" << std::endl;
}
return 0;
}
'Programming Languages > C++' 카테고리의 다른 글
제어 흐름 변경 (0) | 2025.03.27 |
---|---|
반복문 (0) | 2025.03.27 |
챕터2. 실습 문제 (0) | 2025.03.27 |
타입 별칭 및 auto 키워드 (0) | 2025.03.27 |
문자열 다루기 (0) | 2025.03.27 |