29.2 continue로 코드 실행 건너뛰기

이번에는 continue를 사용하여 일부 코드를 실행하지 않고 건너뛰어 보겠습니다. 다음은 1부터 100까지 숫자 중 짝수만 출력합니다.

continue_for.c

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 100; i++)    // 1부터 100까지 증가하면서 100번 반복
    {
        if (i % 2 != 0)               // i를 2로 나누었을 때 나머지가 0이 아니면 홀수
            continue;                 // 아래 코드를 실행하지 않고 건너뜀

        printf("%d\n", i);
    }

    return 0;
}

실행 결과

... (생략)
92
94
96
98
100

for를 사용하여 1부터 100까지 반복합니다. 그리고 if를 사용하여 i가 홀수이면 continue를 실행합니다(i2로 나누었을 때 나머지가 0이면 짝수 0이 아니면 홀수입니다). 마지막으로 printf를 사용하여 i의 값을 출력합니다.

i가 짝수이면 printf가 실행되어 숫자가 출력되고, 홀수이면 continue가 실행되어 printf를 실행하지 않습니다. 즉, 반복문 안에서 continue를 실행하면 continue 아래의 코드는 실행하지 않고 건너뛴 뒤 다음 반복을 시작합니다.

for뿐만 아니라 while(do while)에서도 continue의 동작은 같습니다.

continue_while.c

#include <stdio.h>

int main()
{
    int i = 1;
    while (i <= 100)     // i가 100보다 작거나 같을 때 반복. 1부터 100까지 증가하면서 100번 반복
    {
        i++;             // i를 1씩 증가시킴
        if (i % 2 != 0)  // i를 2로 나누었을 때 나머지가 0이 아니면 홀수
            continue;    // 아래 코드를 실행하지 않고 건너뜀

        printf("%d\n", i);
    }

    return 0;
}

실행 결과

... (생략)
92
94
96
98
100

여기서는 반복 횟수를 정한 뒤 continue를 사용했지만 무한 루프에서 continue를 사용하면 짝수만 계속 출력될 뿐 반복문은 끝나지 않습니다.다음은 반복문과 continue의 동작을 나타낸 순서도입니다.

그림 29‑3 continue로 코드 실행 건너뛰기