본문 바로가기
Computer Science/C 언어

[C #6] 반복문 (Loops)

by rnasterofmysea 2024. 12. 4.
반응형

6장: 반복문 (Loops)


6.1 반복문의 개요

반복문은 특정 조건이 참인 동안 동일한 작업을 반복적으로 수행하는 데 사용됩니다.
C 언어에서 사용할 수 있는 반복문은 다음과 같습니다:

  1. while문
  2. do-while문
  3. for문

6.2 while문

while문은 조건이 **참(1)**인 동안 반복적으로 실행됩니다.

기본 형식

while (조건) {
    명령문;
}

작동 순서

  1. 조건을 검사.
  2. 조건이 참이면 블록을 실행.
  3. 조건이 거짓이면 반복문 종료.

예제

#include <stdio.h>

int main(void) {
    int i = 1;

    while (i <= 5) {
        printf("i = %d\n", i);
        i++;  // 반복 조건을 갱신
    }

    return 0;
}

출력 결과:

i = 1
i = 2
i = 3
i = 4
i = 5

6.3 do-while문

do-while문은 조건을 나중에 검사하며, 최소 한 번은 블록을 실행합니다.

기본 형식

do {
    명령문;
} while (조건);

예제

#include <stdio.h>

int main(void) {
    int i = 1;

    do {
        printf("i = %d\n", i);
        i++;
    } while (i <= 5);

    return 0;
}

출력 결과:

i = 1
i = 2
i = 3
i = 4
i = 5

특징

  • 조건이 거짓이어도 블록이 한 번은 실행됩니다.

6.4 for문

for문은 반복 횟수가 정해진 경우 사용하기 적합합니다.

기본 형식

for (초기화; 조건; 갱신) {
    명령문;
}

작동 순서

  1. 초기화 실행.
  2. 조건 검사. 참이면 블록 실행.
  3. 갱신 실행 후 다시 조건 검사.

예제

#include <stdio.h>

int main(void) {
    for (int i = 1; i <= 5; i++) {
        printf("i = %d\n", i);
    }

    return 0;
}

출력 결과:

i = 1
i = 2
i = 3
i = 4
i = 5

6.5 반복문 제어

반복문 실행 중 조건에 따라 제어가 필요할 때 사용합니다.

1. break

반복문을 즉시 종료합니다.

#include <stdio.h>

int main(void) {
    for (int i = 1; i <= 10; i++) {
        if (i == 5) {
            break;  // 반복문 종료
        }
        printf("i = %d\n", i);
    }

    return 0;
}

출력 결과:

i = 1
i = 2
i = 3
i = 4

2. continue

반복문의 나머지 부분을 건너뛰고 다음 반복을 실행합니다.

#include <stdio.h>

int main(void) {
    for (int i = 1; i <= 5; i++) {
        if (i == 3) {
            continue;  // 아래 명령문 건너뜀
        }
        printf("i = %d\n", i);
    }

    return 0;
}

출력 결과:

i = 1
i = 2
i = 4
i = 5

6.6 반복문 활용 예제

1. 1부터 N까지의 합 구하기

#include <stdio.h>

int main(void) {
    int n, sum = 0;

    printf("정수를 입력하세요: ");
    scanf("%d", &n);

    for (int i = 1; i <= n; i++) {
        sum += i;
    }

    printf("1부터 %d까지의 합: %d\n", n, sum);

    return 0;
}

실행 결과:

정수를 입력하세요: 10
1부터 10까지의 합: 55

2. 구구단 출력

#include <stdio.h>

int main(void) {
    int dan;

    printf("출력할 구구단의 단을 입력하세요: ");
    scanf("%d", &dan);

    for (int i = 1; i <= 9; i++) {
        printf("%d x %d = %d\n", dan, i, dan * i);
    }

    return 0;
}

실행 결과:

출력할 구구단의 단을 입력하세요: 3
3 x 1 = 3
3 x 2 = 6
...
3 x 9 = 27

3. 숫자 찾기 게임

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
    int secret, guess;

    srand(time(0));  // 랜덤 시드 설정
    secret = rand() % 100 + 1;  // 1~100 사이의 숫자 생성

    do {
        printf("숫자를 맞춰보세요 (1~100): ");
        scanf("%d", &guess);

        if (guess < secret) {
            printf("더 큰 숫자입니다.\n");
        } else if (guess > secret) {
            printf("더 작은 숫자입니다.\n");
        }
    } while (guess != secret);

    printf("정답입니다! 숫자는 %d입니다.\n", secret);

    return 0;
}

6.7 무한 루프

while을 사용한 무한 루프

while (1) {
    // 반복 실행
}

for를 사용한 무한 루프

for (;;) {
    // 반복 실행
}

주의사항

  • 무한 루프는 반드시 break 조건을 추가해야 합니다.

 

반응형