2로 나누었을 때 나누어 떨어지면(나머지가 0이면) 짝수이고, 그렇지 않으면(나머지가 1이면) 홀수입니다. 즉, i % 2 수식의 결과는 0 또는 1입니다.
우리 모두 알고 있듯이, if 조건문이 참일 때 즉, if (1)일 때 명령을 수행합니다. i % 2의 결과가 1이면 i는 홀수라는 의미이고, if(1)이 되어 continue를 수행합니다. 이렇게 하면 나머지 연산자 %의 연산 결과를 또 다시 비교 연산자(= =)를 사용하여 1과 같은지 검사할 필요가 없습니다.
이를 코드로 정리하면 다음과 같습니다.
DR_think_iter6.c
#include <stdio.h> main() { int i, j; for (i = 1; i < 10; i++) { if (i % 2) continue; // i가 홀수면 i % 2 결과는 1이 됨 for (j = 1; j < 10; j++) { printf("%d * %d = %d\n", i, j, i * j); } } }
결과는 같지만, 앞의 코드와 비교했을 때 연산 횟수를 줄인 더욱 효율적인 코딩이라고 할 수 있습니다.