더북(TheBook)

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);
        }
    }
}

결과는 같지만, 앞의 코드와 비교했을 때 연산 횟수를 줄인 더욱 효율적인 코딩이라고 할 수 있습니다.

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