이 관점에서 다시 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); } } }