728x90
반응형
C++ 반복문 마스터: 효율적인 코드 실행을 위한 루프(Loop) 총정리
안녕하세요! Coding by Head입니다. 프로그램이 수천 개의 데이터를 처리하거나 같은 작업을 수만 번 반복해야 할 때 사용하는 것이 바로 '반복문(Iteration)'입니다.
오늘은 C++의 3대 반복문인 for, while, do-while의 특징과 실무에서 자주 쓰이는 제어 기법들을 정리해 보겠습니다.

1. for 반복문: 횟수가 정해진 작업의 정석
for문은 반복 횟수가 명확할 때 가장 많이 사용됩니다. 초기화, 조건식, 증감식이 한 줄에 있어 가독성이 매우 좋습니다.
C++
#include <iostream>
int main() {
int sum = 0;
// 1부터 10까지 더하기
for (int i = 1; i <= 10; i++) {
sum += i;
}
std::cout << "1부터 10까지의 합: " << sum << std::endl;
return 0;
}
2. while vs do-while: 조건 중심의 반복
while문 (선 조건 검사)
조건이 참일 때만 실행됩니다. 반복 횟수를 미리 알 수 없을 때(예: 파일 읽기, 사용자 입력 대기) 유용합니다.
do-while문 (후 조건 검사)
조건이 거짓이더라도 최소한 한 번은 반드시 실행되어야 할 때 사용합니다. (예: 메뉴 선택 화면)
C++
#include <iostream>
int main() {
int choice;
do {
std::cout << "1. 시작 2. 도움말 3. 종료 : ";
std::cin >> choice;
} while (choice < 1 || choice > 3); // 유효한 번호가 아니면 계속 반복
return 0;
}
3. [고급] Range-based for (C++11 이상)
배열이나 컨테이너의 모든 요소를 순회할 때, 인덱스 실수 없이 안전하게 사용할 수 있는 현대적인 방법입니다.
C++
int scores[] = {90, 85, 70, 95};
for (int s : scores) {
std::cout << "점수: " << s << std::endl;
}
4. 루프 제어: break와 continue
- break: 반복문을 즉시 탈출합니다. (무한 루프 중단 시 필수)
- continue: 현재 반복의 나머지 코드를 건너뛰고 다음 반복으로 즉시 넘어갑니다.
💡 임베디드 개발자를 위한 성능 팁 (Coding by Head)
- 무한 루프: 임베디드 메인 루프에서는 while(1) 또는 for(;;)를 사용합니다. 컴파일러에 따라 for(;;)가 조금 더 최적화된 기계어를 생성하기도 합니다.
- 중첩 루프 주의: 루프가 깊어질수록 성능이 급격히 저하되므로(O(n²)), 다중 루프 내에서는 불필요한 연산을 최소화해야 합니다.
5. [실전] 구구단과 배열 평균 계산
반복문의 중첩(Nested Loop)은 구구단 출력과 같은 2차원 데이터를 다룰 때 강력합니다.
C++
// 구구단 가로 출력 예시
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
std::cout << i << "*" << j << "=" << i*j << "\t";
}
std::cout << "\n";
}
마치며
이번 포스팅에서는 C++ 반복문의 기본부터 최신 문법까지 살펴보았습니다. 효율적인 반복문 사용은 코드의 줄을 줄여줄 뿐만 아니라 시스템의 자원을 절약하는 첫걸음입니다.
다음 포스팅에서는 코드를 구조화하는 핵심인 '함수(Function)'에 대해 알아보겠습니다. 궁금한 점은 언제든 댓글로 남겨주세요!
반응형
'Core Programming > Modern C++ & System Design' 카테고리의 다른 글
| C++ 배열과 문자열 완벽 가이드: 메모리 구조부터 std::string 활용법까지 (0) | 2024.12.18 |
|---|---|
| C++ 함수 완벽 가이드: 선언과 정의부터 매개변수 전달 방식(Call by Reference)까지 (0) | 2024.12.18 |
| C++ 조건문 완벽 가이드: if, else if, switch문 사용법 및 성능 비교 (0) | 2024.12.17 |
| C++ 입출력 완벽 가이드: cin, cout부터 파일 입출력 및 소수점 제어까지 (0) | 2024.12.17 |
| C++ 기초: 데이터 타입 총정리 및 변수 선언법 (int, double, static 변수) (0) | 2024.12.17 |