공부/C++

반복문, while 문, do-while 문, for 문, for문의 형태, break 문, continue 문, 중첩 반복문, 팩토리얼

월러비 2025. 6. 3. 15:10

반복문

  • 프로그램 흐름을 제어하는 구성 중 하나다.
  • 예) FPS : 프레임 단위마다 루프
  • 횟수가 정해진 반복을 쓸때는 for문, 횟수가 정해지지 않은 반복이면 while문을 쓴다.

While 문

while (조건식) {
    // 조건식이 참인 동안 반복 실행될 코드
}
  • 주어진 조건식이 참인 동안 코드 블록을 반복 실행한다.
  • 코드가 끝나면 다시 조건식을 확인한다.
    • 조건식이 true가 계속되면 무한루프가 걸린다.
    • 무한 루프 : 조건식이 항상 참이면 무한히 반복한다.
      • break 문으로 탈출해야한다.

do-while 문

do {
    // 먼저 한 번 실행되고, 조건식이 참인 동안 반복 실행될 코드
} while (조건식); // 세미콜론(;) 필수
  • 코드 블록을 한번 실행한 후, 조건식을 검사하여 참이면 반복한다.
    • 조건과 관계없이 본문이 최소 한 번은 실행됨.

for 문

for (초기식; 조건식; 증감식) {
    // 조건식이 참인 동안 반복 실행될 코드
}
  • 초기식, 조건식, 증감식을 이용하여 특정 횟수만큼 반복 실행한다.
    • 초기식: 반복 시작 전 한 번만 실행 (주로 반복 제어 변수 초기화).
      • 주로 for문에서만 사용하는 변수를 넣는다.
    • 조건식: 매 반복 시작 전 검사, 참이면 반복, 거짓이면 종료.
    • 증감식: 매 반복 본문 실행 후 실행 (주로 반복 제어 변수 값 변경).
  • for문 내에 정의한 ‘초기식’의 변수는 for문이 끝나면 메모리에서 삭제되어서 for문 외부에서 사용이 불가능하다.

for문의 형태

int n;
printf("자연수 입력: ");
scanf("%d", &n);

int sum = 0;
for (int i = 1; i <= n; i++) { // i를 1로 초기화, i가 n 이하인 동안 반복, 매 반복 후 i를 1 증가
    sum += i;
}
printf("1부터 %d까지의 합: %d\\\\n", n, sum);
  • 초기식 생략 가능 (단, 세미콜론 유지).
    • 반복문 외부에서 변수를 선언했을 시 생략할 수 있다.
  • 조건식 생략 시 무한 루프 (단, 세미콜론 유지).
  • 증감식 여러 개 사용 가능 (쉼표로 구분).
  • 모든 식 생략 가능 (for(;;) -> 무한 루프).
  • 반복문 본체가 비어있을 수도 있음.
    • i가 n보다 커질때까지 pow를 2씩 곱하는 식이다.
  • int i, pow; for(i = 1, pow = 1; i < n; i++, pow *= 2);

루프 제어문

break 문

for (int i = 1; ; i++) { // 조건식 생략 (무한 루프 의도)
    int k;
    scanf("%d", &k);
    if (k == 0) {  // 입력받은 k가 0이면
        break;     // for 문 탈출
    }
    printf("%d번째 입력 결과: %d\\\\n", i, k);
}
  • 현재 실행 중인 반복문 또는 switch 문을 즉시 종료한다.
  • for문이 2개라면?
    • 해당 break문이 있는 for문 또는 switch 문만 종료된다.
    • 그 for문 안에 switch 또는 for문이 있다면?
      • 다 종료된다.
  • break문은 주로 특정 조건을 만족했을 때 반복을 중단하기 위해 사용.

continue 문

int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
    if (i % 3 == 0) { // i가 3의 배수이면
        continue;     // 현재 루프(printf)를 건너뛰고 다음 i로 진행
    }
    printf("%d \\\\n", i);
}
  • 반복문의 나머지 부분을 건너뛰고, 다음 반복을 시작한다.
    • 조건식/증감식 검사로 이동
  • 특정 조건에서 현재 반복만 건너뛰고 싶을 때 사용한다.
  • while문 do-while 문에서는?
    • 증감식이 없기에 ‘조건식’으로 돌아간다.

중첩 반복문

  • 하나의 반복문 안에 다른 반복문이 포함된 형태다.
    • 바깥쪽 루프가 한 번 반복할 때마다 안쪽 루프는 전체 반복을 수행.
    • 2차원 배열 처리, 특정 패턴 출력 등에 유용.

팩토리얼

  • 덧셈이 아닌 곱셈을 하는 식이다.