C언어 초급 - 7장: 반복문 (7.4 반복문의 제어 (break, continue))

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

7.4 반복문의 제어 (break, continue)

C 언어에서 반복문의 제어문을 사용하면 특정 조건에서 반복을 중단하거나 특정 반복을 건너뛸 수 있습니다.
이러한 기능은 break 문과 continue 문을 통해 구현됩니다.


1. break 문 – 특정 조건에서 반복 중단

1.1 break 문의 개념

  • 반복문(for, while, do-while)에서 실행 중 특정 조건을 만나면 즉시 반복을 중단하고 빠져나감.
  • 주로 반복문을 강제로 종료해야 하는 경우 사용됨.

1.2 break 문 기본 구조

for (초기값; 조건; 증감) {
    if (특정 조건) {
        break; // 반복문 종료
    }
    // 실행할 코드
}

1.3 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 실행 → 반복문 즉시 종료.
  • 따라서 5 이후의 숫자는 출력되지 않음.

1.4 break 문 예제 – 사용자 입력을 통한 반복 중단

사용자가 0을 입력하면 반복을 중단하는 프로그램입니다.

#include <stdio.h>

int main() {
    int num;

    while (1) { // 무한 루프
        printf("숫자를 입력하세요 (0 입력 시 종료): ");
        scanf("%d", &num);

        if (num == 0) {
            break; // 0을 입력하면 반복문 종료
        }

        printf("입력한 숫자: %d\n", num);
    }

    printf("프로그램을 종료합니다.\n");

    return 0;
}

실행 예시

숫자를 입력하세요 (0 입력 시 종료): 5
입력한 숫자: 5
숫자를 입력하세요 (0 입력 시 종료): 3
입력한 숫자: 3
숫자를 입력하세요 (0 입력 시 종료): 0
프로그램을 종료합니다.

📌 설명

  • while (1)을 사용해 무한 루프 실행.
  • num == 0이면 break 실행 → 반복문 종료.

2. continue 문 – 특정 조건에서 다음 반복으로 건너뛰기

2.1 continue 문의 개념

  • 현재 반복을 중단하고, 다음 반복으로 건너뜀.
  • 반복문을 완전히 종료하지 않고 특정 조건에서 일부 코드만 실행하지 않도록 설정 가능.

2.2 continue 문 기본 구조

for (초기값; 조건; 증감) {
    if (특정 조건) {
        continue; // 현재 반복 중단 후 다음 반복 실행
    }
    // 실행할 코드
}

2.3 continue 문 예제 – 짝수만 출력하기

#include <stdio.h>

int main() {
    for (int i = 1; i <= 10; i++) {
        if (i % 2 != 0) { // 홀수일 경우
            continue; // 아래 코드 실행하지 않고 다음 반복으로 건너뜀
        }
        printf("%d ", i); // 짝수만 출력됨
    }

    return 0;
}

출력 결과

2 4 6 8 10

📌 설명

  • i % 2 != 0 (홀수)이면 continue 실행 → 출력 코드 실행 건너뜀.
  • 따라서 짝수(2, 4, 6, 8, 10)만 출력됨.

2.4 continue 문 예제 – 특정 숫자 제외하고 출력

#include <stdio.h>

int main() {
    for (int i = 1; i <= 10; i++) {
        if (i == 5) {
            continue; // i가 5일 때 건너뜀
        }
        printf("%d ", i);
    }

    return 0;
}

출력 결과

1 2 3 4 6 7 8 9 10

📌 설명

  • i == 5일 때 continue 실행 → 5는 출력되지 않음.

3. break와 continue 비교

제어문 동작 방식 반복문 종료 여부 예제
break 특정 조건에서 반복문을 완전히 종료 ✅ (반복문 종료) if (x == 5) break;
continue 특정 조건에서 현재 반복을 건너뛰고 다음 반복 실행 ❌ (반복문 유지) if (x == 5) continue;

📌 반복을 완전히 종료해야 하면 break 사용
📌 일부 조건에서만 실행을 건너뛰려면 continue 사용


4. break와 continue를 활용한 프로그램

4.1 break를 활용한 특정 조건에서 반복 중단

사용자가 0을 입력하면 프로그램을 종료하는 코드입니다.

#include <stdio.h>

int main() {
    int num;

    while (1) {
        printf("숫자를 입력하세요 (0 입력 시 종료): ");
        scanf("%d", &num);

        if (num == 0) {
            printf("프로그램을 종료합니다.\n");
            break; // 0 입력 시 종료
        }

        printf("입력한 숫자: %d\n", num);
    }

    return 0;
}

실행 예시

숫자를 입력하세요 (0 입력 시 종료): 10
입력한 숫자: 10
숫자를 입력하세요 (0 입력 시 종료): 5
입력한 숫자: 5
숫자를 입력하세요 (0 입력 시 종료): 0
프로그램을 종료합니다.

4.2 continue를 활용한 특정 입력 건너뛰기

사용자가 음수를 입력하면 출력하지 않고 건너뛰는 코드입니다.

#include <stdio.h>

int main() {
    int num;

    for (int i = 0; i < 5; i++) {
        printf("숫자를 입력하세요: ");
        scanf("%d", &num);

        if (num < 0) {
            printf("음수는 출력하지 않습니다.\n");
            continue; // 음수면 아래 코드 실행하지 않고 다음 반복 진행
        }

        printf("입력한 숫자: %d\n", num);
    }

    return 0;
}

실행 예시

숫자를 입력하세요: 5
입력한 숫자: 5
숫자를 입력하세요: -3
음수는 출력하지 않습니다.
숫자를 입력하세요: 10
입력한 숫자: 10

📌 설명

  • 음수 입력 시 continue 실행 → 출력문 건너뜀.

5. 정리

개념  설명  예제
break 특정 조건에서 반복문 완전히 종료 if (x == 5) break;
continue 특정 조건에서 현재 반복 건너뛰기 if (x == 5) continue;
while에서 break 무한 루프 탈출 while (1) { if (x == 0) break; }
for에서 continue 특정 값 제외하고 반복 if (x % 2 == 0) continue;

📌 반복문을 완전히 종료하려면 break 사용
📌 특정 조건에서 현재 반복만 건너뛰려면 continue 사용