더북(TheBook)

이 관점에서 다시 3단을 제외하고 구구단을 출력하는 프로그램을 살펴봅시다. 이 프로그래밍은 결함이 있습니다. 코드에서 i는 구구단 단수를 의미하고 j는 각 구구단 단수에서 1에서 9까지 구구단 결과를 담당합니다. i가 3이 되어 3단이 되면 두 번째 for 반복문으로 제어가 내려와서 j = 1에서 j < 10일 때까지, i가 3과 같은지 총 아홉 번 검사하고 continue를 수행합니다.

j의 값이 1에서 9까지 변하는 동안 i의 값은 언제나 3입니다. 조건문을 아홉 번 수행한 결과는 참이므로 continue를 수행하면서 3단을 출력하지 않습니다. 여기서 조건문을 아홉 번 수행하고 조건문의 결과를 계산하고 참인지 아닌지 체크하여 continue를 수행한다고 하였습니다.

만약 다음과 같이 continue의 위치를 위로 올리면 조건문을 아홉 번 실행해야 하는 불필요한 실행 시간을 줄일 수 있습니다.

DR_think_iter3.c

#include <stdio.h>
 
main() {
    int i, j;
 
    for (i = 1; i < 10; i++) {
        if (i = = 3) continue;  // 위치 수정
        for (j = 1; j < 10; j++) {
            printf("%d * %d = %d\n", i, j, i*j);
        }
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.