제어 흐름 변경
2025. 3. 27. 23:06ㆍProgramming Languages/C++
3.3 제어 흐름 변경
3.3.1 break 문
반복문이나 switch 문을 즉시 종료합니다.
예제 (반복문에서 break):
#include <iostream>
int main() {
// 5를 만나면 반복 종료
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
std::cout << i << " ";
}
std::cout << std::endl; // 출력: 1 2 3 4
return 0;
}
예제 (중첩 반복문에서 break):
#include <iostream>
int main() {
for (int i = 1; i <= 3; i++) {
std::cout << "바깥 루프 " << i << ": ";
for (int j = 1; j <= 5; j++) {
if (j == 4) {
break; // 안쪽 루프만 종료
}
std::cout << j << " ";
}
std::cout << std::endl;
}
return 0;
}
출력:
바깥 루프 1: 1 2 3
바깥 루프 2: 1 2 3
바깥 루프 3: 1 2 3
3.3.2 continue 문
현재 반복을 건너뛰고 다음 반복으로 넘어갑니다.
예제:
#include <iostream>
int main() {
// 짝수만 출력
for (int i = 1; i <= 10; i++) {
if (i % 2 != 0) {
continue; // 홀수는 건너뛰기
}
std::cout << i << " ";
}
std::cout << std::endl; // 출력: 2 4 6 8 10
return 0;
}
3.3.3 goto 문
지정된 레이블로 프로그램 실행을 무조건 이동합니다. (권장하지 않음)
예제:
#include <iostream>
int main() {
int i = 1;
start: // 레이블
if (i <= 5) {
std::cout << i << " ";
i++;
goto start; // start 레이블로 이동
}
std::cout << std::endl;
return 0;
}
주의: goto는 코드의 가독성과 유지보수성을 크게 저하시키므로 가능한 다른 제어 구조로 대체하는 것이 좋습니다.
3.3.4 return 문
함수 실행을 종료하고 값을 반환합니다. (main 함수 내에서는 프로그램 종료)
예제:
#include <iostream>
// 두 수의 최대값을 반환하는 함수
int max(int a, int b) {
if (a > b) {
return a; // a가 크면 a 반환하고 함수 종료
}
return b; // 그렇지 않으면 b 반환하고 함수 종료
}
int main() {
std::cout << "최대값: " << max(10, 20) << std::endl;
// 조건에 따른 조기 반환
int num = -5;
if (num < 0) {
std::cout << "음수는 처리할 수 없습니다." << std::endl;
return 1; // 비정상 종료 (오류 코드 반환)
}
// 이 코드는 num이 음수면 실행되지 않음
std::cout << "제곱: " << num * num << std::endl;
return 0; // 정상 종료
}
'Programming Languages > C++' 카테고리의 다른 글
| 챕터3. 실습문제 (0) | 2025.03.27 |
|---|---|
| 조건부 컴파일 (0) | 2025.03.27 |
| 반복문 (0) | 2025.03.27 |
| 제어문 (0) | 2025.03.27 |
| 챕터2. 실습 문제 (0) | 2025.03.27 |