주제

  • C++에서 사용되는 반복문 for, while, do-while의 구조, 동작 방식, 사용 목적을 자세히 설명하고, 반복문 흐름을 제어하는 키워드 break, continue의 기능과 효과까지 완전히 분석한 자료이다.
  • 게임 루프, 이벤트 처리, 조건 기반 반복 등 실전 프로그래밍에 필수적인 반복문의 모든 개념과 동작 원리를 예제 중심으로 이해할 수 있도록 구성되어 있다.

개념

  • 반복문이란?
    반복문은 조건이 참인 동안 또는 반복 횟수가 만족될 때까지 코드 블록을 자동으로 반복 실행하도록 만들어진 제어 구조이다.
    이를 통해 동일한 작업을 여러 번 수행할 수 있으며, 코드의 간결성과 재사용성을 높여준다.

  • 반복문의 목적

    • 작업 자동화: 일일이 작성하지 않고 반복 구조로 대체.
    • 유지보수 용이: 반복 횟수나 조건만 바꾸면 전체 동작이 바뀜.
    • 게임 루프 및 실시간 시스템 처리: 일정 시간 동안 반복 처리.
  • C++ 반복문의 종류
    | 반복문 | 특징 |
    |--------|------|
    | for | 반복 횟수가 명확할 때 사용. 한 줄에 초기화, 조건, 증감 포함. |
    | while | 조건이 참이면 반복. 조건이 외부에서 조정됨. |
    | do-while | 조건이 뒤에 있어 최소 한 번은 실행됨. 사용 빈도는 적음. |

  • 제어 키워드
    | 키워드 | 설명 |
    |--------|------|
    | break | 반복문을 즉시 종료하고 탈출. 하나의 루프만 빠져나옴. |
    | continue | 현재 반복을 중단하고 조건 검사로 이동. 이후 코드 무시. |


용어정리

용어설명
초기화반복이 시작될 때 반복 변수를 설정하는 부분
조건식반복을 계속할지 판단하는 조건 표현식
증감식매 반복마다 반복 변수 값을 조정하는 식
무한 루프조건이 항상 참이어서 종료되지 않는 반복문
중첩 반복문반복문 내부에 또 다른 반복문이 있는 구조
coutC++의 표준 출력 객체
endl줄바꿈 및 출력 버퍼 플러시

코드 분석

1. for 반복문 기본 구조

for (int i = 0; i < 5; i++) {
    cout << "반복 횟수: " << i << endl;
}
  • int i = 0 : 반복 변수 i를 0으로 초기화.
  • i < 5 : 조건식. i가 5 미만일 때만 반복.
  • i++ : 반복이 끝날 때마다 i를 1 증가.
  • 총 5회 실행되며 "반복 횟수: 0~4"가 출력됨.

📌 출력:

반복 횟수: 0
반복 횟수: 1
반복 횟수: 2
반복 횟수: 3
반복 횟수: 4

2. while 반복문 기본 구조

int count = 0;
while (count < 5) {
    cout << "현재 카운트: " << count << endl;
    count++;
}
  • count = 0 : 변수 초기화.
  • 조건이 참(count < 5)이면 반복 블록 실행.
  • count++ : 반복마다 1씩 증가.
  • count가 5가 되면 종료됨.

📌 출력:

현재 카운트: 0
현재 카운트: 1
현재 카운트: 2
현재 카운트: 3
현재 카운트: 4

3. do-while 반복문

int count = 0;
do {
    cout << "현재 카운트: " << count << endl;
    count++;
} while (count < 5);
  • 조건이 뒤에 있으므로 무조건 1회는 실행됨.
  • 이후 count < 5 조건이 참이면 반복 계속.

📌 출력:

현재 카운트: 0
현재 카운트: 1
현재 카운트: 2
현재 카운트: 3
현재 카운트: 4

4. while + continue 예제

cnt = 0;
while (cnt < 5) {
    cnt++;

    if (cnt == 3)
        continue;

    cout << "Hello World" << endl;
}
  • cnt가 3일 때는 continue가 실행되어 "Hello World" 출력이 생략됨.
  • 그 외에는 출력.

📌 출력:

Hello World
Hello World
Hello World
Hello World

cnt == 3에서 cout 건너뜀 → 출력 4회


5. for + continue (의미 없는 위치)

for (int i = 0; i < 100; i++) {
    cout << "Hello World" << endl;

    if (i == 50)
        continue;
}
  • coutcontinue 위에 있어 항상 실행됨.
  • continue는 사실상 의미 없음.

📌 출력:

Hello World
...
(총 100회)

6. break 사용 예제

for (int i = 0; i < 10; i++) {
    if (i == 5) break;
    cout << "i: " << i << endl;
}
  • i == 5일 때 루프 종료.
  • 출력은 i = 0 ~ 4까지만.

📌 출력:

i: 0
i: 1
i: 2
i: 3
i: 4

7. continue 사용 예제 (홀수만 출력)

for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) continue;
    cout << "i: " << i << endl;
}
  • 짝수일 경우 출력 생략.
  • 홀수만 출력됨.

📌 출력:

i: 1
i: 3
i: 5
i: 7
i: 9

8. 중첩 반복문 예제

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        cout << "(" << i << ", " << j << ")" << endl;
    }
}
  • i가 0~2일 때마다, j도 0~2 반복.
  • 총 9개의 좌표 출력.

📌 출력:

(0, 0)
(0, 1)
(0, 2)
(1, 0)
(1, 1)
(1, 2)
(2, 0)
(2, 1)
(2, 2)

9. 무한 루프 + 탈출 예제

while (true) {
    cout << "무한 반복 중..." << endl;
    break;
}
  • while (true)는 무한 반복 구조.
  • break가 있어 첫 반복 후 종료됨.

📌 출력:

무한 반복 중...

핵심

  • for 문은 반복 횟수가 명확할 때, while은 조건 기반 반복에 적합하며, do-while은 한 번 이상 실행해야 할 경우에 사용한다.
  • continue현재 반복만 건너뛰고, break전체 반복문을 종료한다.
  • while에서 continue를 쓸 경우, 조건 검사와 증감식의 위치에 주의하지 않으면 무한 루프로 빠질 수 있다.
  • continue출력 이후에 오면 의미가 없으며, 위치에 따라 프로그램 흐름이 완전히 달라질 수 있다.
  • 중첩 반복문은 다차원 데이터나 테이블 기반 처리가 필요한 구조에서 필수.
  • 반복문과 제어 키워드는 조합에 따라 게임 루프, 이벤트 루프, 실시간 처리에 광범위하게 응용된다.

profile
李家네_공부방

0개의 댓글