C언어 초급 - 7장: 반복문 (7.3 for 문)

2025. 2. 23. 19:09프로그래밍 언어/C

7.3 for 문

C 언어에서 for 문은 반복문 중 하나로, 반복 횟수가 정해진 경우에 가장 적합합니다.
while 문과 do-while 문은 조건을 기반으로 실행되지만, for 문은 초기값, 조건, 증감식을 한 줄에 정리하여 반복 횟수를 명확하게 설정할 수 있습니다.


1. for 반복문의 구조

1.1 for 문 기본 구조

for (초기식; 조건식; 증감식) {
    // 반복할 코드
}

📌 각 항목의 역할

  • 초기식: 반복문이 시작될 때 한 번만 실행(보통 변수를 초기화).
  • 조건식: true이면 실행하고, false이면 반복문 종료.
  • 증감식: 한 번 실행될 때마다 반복 변수를 증가(++) 또는 감소(--).

1.2 for 문 예제 – 기본적인 반복문

아래 코드는 1부터 5까지 숫자를 출력하는 프로그램입니다.

#include <stdio.h>

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

    return 0;
}

출력 결과

1
2
3
4
5

📌 실행 과정

  1. int i = 1; → i 초기화 (초기식)
  2. i <= 5; → 조건 확인 (참이므로 실행)
  3. printf("%d\n", i); → i 값 출력
  4. i++ → i 값을 증가 (증감식)
  5. 위 과정을 i > 5가 될 때까지 반복

2. 반복 횟수가 정해진 경우의 활용

2.1 1부터 n까지의 합 계산

#include <stdio.h>

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

    printf("1부터 n까지의 합을 구할 n 값을 입력하세요: ");
    scanf("%d", &n);

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

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

    return 0;
}

실행 예시

1부터 n까지의 합을 구할 n 값을 입력하세요: 10
1부터 10까지의 합: 55

📌 설명

  • for 문을 사용하여 i 값을 1부터 n까지 증가시키며 sum에 더함.

2.2 구구단 출력

#include <stdio.h>

int main() {
    int dan;

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

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

    return 0;
}

실행 예시

출력할 구구단 단수를 입력하세요: 7
7 × 1 = 7
7 × 2 = 14
7 × 3 = 21
...
7 × 9 = 63

📌 설명

  • for 문을 사용하여 1부터 9까지 곱셈 연산을 반복하여 구구단을 출력.

2.3 별(*) 피라미드 출력

#include <stdio.h>

int main() {
    int n;

    printf("별(*) 피라미드의 높이를 입력하세요: ");
    scanf("%d", &n);

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

실행 예시 (n = 5 입력)

*
**
***
****
*****

📌 설명

  • 바깥 for 문 (i) → 줄 수 조정.
  • 안쪽 for 문 (j) → 각 줄의 * 개수 조정.

3. for 문에서 사용되는 다양한 활용

3.1 for 문에서 초기식, 조건식, 증감식 변경 가능

#include <stdio.h>

int main() {
    for (int i = 10; i >= 1; i -= 2) {
        printf("%d ", i);
    }

    return 0;
}

출력 결과

10 8 6 4 2

📌 설명

  • i = 10으로 시작.
  • i >= 1이 참이면 실행.
  • i -= 2로 i 값을 2씩 감소.

3.2 for 문에서 break 문 사용

#include <stdio.h>

int main() {
    for (int i = 1; i <= 10; i++) {
        if (i == 5) {
            break; // i가 5가 되면 반복 종료
        }
        printf("%d ", i);
    }

    return 0;
}

출력 결과

1 2 3 4

📌 설명

  • i == 5가 되면 break 문 실행 → 반복 종료.

3.3 for 문에서 continue 문 사용

#include <stdio.h>

int main() {
    for (int i = 1; i <= 10; i++) {
        if (i % 2 == 0) {
            continue; // 짝수일 경우 아래 코드 실행 건너뜀
        }
        printf("%d ", i);
    }

    return 0;
}

출력 결과

1 3 5 7 9

📌 설명

  • continue 문을 만나면 현재 반복을 건너뛰고 다음 반복 실행.
  • 짝수(i % 2 == 0)는 출력하지 않음.

4. for 문 vs while 문 vs do-while 문

반복문  실행 순서 반복 횟수 지정 사용 예제
for 초기식 → 조건 검사 → 실행 → 증감 보통 명확한 반복 횟수가 있을 때 사용 for (i=0; i<10; i++)
while 조건 검사 → 실행 반복 횟수가 불확실할 때 사용 while (조건) { 실행 }
do-while 실행 → 조건 검사 → 반복 최소 한 번 실행 보장 do { 실행 } while (조건);

📌 반복 횟수가 정해졌다면 → for 문 사용
📌 반복 횟수가 정해지지 않았거나 조건 기반이라면 → while 문 사용
📌 최소 한 번 실행이 보장되어야 한다면 → do-while 문 사용


5. 정리

개념  설명  예제
for 문 반복 횟수가 정해진 경우 사용 for (i = 0; i < 10; i++)
break 특정 조건에서 반복 종료 if (i == 5) break;
continue 특정 조건에서 현재 반복 건너뛰기 if (i % 2 == 0) continue;

📌 반복 횟수가 정해진 경우 → for 문 사용
📌 구구단, 리스트 출력, 합 계산 등에서 유용