더북(TheBook)

i4가 되면 조건문을 만족하고 continue를 만나 while 반복문의 조건을 다시 검사합니다. 하지만 여전히 i4인 상태이고 while 반복문의 조건식을 다시 만족하게 되므로 또 다시 if(i = = 4) 조건문을 만족하게 되어 continue를 만나는 과정을 무한 반복하게 됩니다.

즉, while 반복문의 반복 조건문을 체크하고 if 조건문으로 내려오는 과정을 i4인 상태에서 무한 반복하므로 아무런 결과도 나오지 않는 것입니다. 눈에 보이진 않아도 이 과정이 무한 반복해서 수행되고 있는 셈이지요.

정상적으로 수행되는 코드는 다음과 같습니다.

DR_think_iter9.c

#include <stdio.h>
 
main() {
    int i = 1;
    int sum = 0;
 
    while (i < 11) {
        if (i = = 4) {
            i++;  // i를 5로 하나 증가시키고 continue 수행
            continue;
        }
        if (i = = 6) break;
        sum += i;
        i++;
    }
    printf("합은 %d\n", sum);
}

실행 결과

합은 11

이처럼 continue를 수행하기 전에 다음 반복 제어로 넘어가기 위해 i 값을 1 증가시키면 문제가 해결됩니다.

6.7절에서 설명한 바와 같이 코딩의 결과가 같다 하더라도 수행 속도와 메모리 사용은 다를 수 있습니다. 따라서 코드 한 줄 한 줄을 작성할 때 수행 속도를 결정 짓는 연산을 최소화하고, 가능한 한 메모리 사용량을 최소화하여 질 높은 코딩을 하는 것이 중요합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.