반복문 (for, while)

Jaemyeong Lee·2024년 7월 9일

게임 서버1

목록 보기
16/220

이번 Step에서 잡아야 할 것

  • 반복에는 항상 3요소가 있다: 초기 상태 → 종료 조건 → 변화(증가/감소)
  • for: 반복 횟수/인덱스가 명확할 때(0~N-1)
  • while: “언제 끝날지 조건”이 핵심이거나, 게임처럼 계속 돌다가 break하는 구조
  • break/continue: 흐름 제어는 강력하지만, 위치를 잘못 잡으면 무한 루프가 된다

while

while (조건식) {
    // 실행할 코드
}
  • 조건이 참(true)인 동안 반복합니다.
  • while (true)무한 루프로, 게임 루프 같은 “계속 돌아야 하는 구조”에 자주 등장합니다.
while (true) {
    // 1) 입력 처리
    // 2) 업데이트(데이터 갱신)
    // 3) 렌더링(출력)

    if (wantQuit) break;  // 종료 조건은 보통 break로 처리
}

for

for (int i = 0; i < 5; i++) {
    cout << i << endl;
}
  • 실행 흐름: 초기화조건 검사실행증감 → 조건 검사 반복
  • i = 0에서 시작해 i < 5 동안 반복하므로 0~4 총 5회 실행됩니다.

자주 하는 실수: i <= 5로 쓰면 0~5 총 6회가 됩니다(오프바이원, off-by-one).

break

  • 가장 가까운 반복문(또는 switch)을 즉시 종료합니다.
for (int i = 0; i < 100; i++) {
    if (i == 10) break;   // i가 10이면 반복 종료
}

continue

  • 현재 반복의 나머지를 건너뛰고 다음 반복으로 넘어갑니다.
  • while에서 특히 주의: continue가 “증감/상태 변화”를 건너뛰게 만들면 무한 루프가 될 수 있습니다.
int i = 0;
while (i < 5) {
    if (i == 2) {
        i++;          // 변화(증가)를 먼저 해줘야 안전
        continue;
    }
    cout << i << endl;
    i++;
}

for vs while

  • for: “몇 번 반복할지”가 명확할 때(배열/인덱스, 0~N-1 패턴)
  • while: “언제 끝날지”가 조건에 달려 있을 때, 또는 while(true) + break 패턴

체크 질문 (스스로 답해보기)

  • 반복문이 안전하게 끝나려면 반드시 필요한 3요소는 무엇일까?
  • for (i = 0; i < N; i++)가 자주 쓰이는 이유는 뭘까?
  • while에서 continue를 쓸 때 무한 루프가 생기는 대표 패턴은 무엇일까?

profile
李家네_공부방

0개의 댓글