67.4 연습문제: 재귀호출 사용하기

다음 소스 코드를 완성하여 1, 2, 3이 각 줄에 출력되게 만드세요.

practice_recursive_function.c

#include <stdio.h>

void printNumber(int count)
{
  _____________________
  _____________________

  printf("%d\n", count);

  printNumber(++count);
}

int main()
{
  int count = 1;

  printNumber(count);

  return 0;
}

실행 결과

1
2
3

정답

if (count == 4)
    return;

해설

함수 printNumber를 보면 함수 안에서 다시 printNumber를 호출하고 있습니다. 따라서 재귀호출이 계속 반복되지 않도록 종료 조건을 만들어야 합니다.

맨 처음 printNumber에 매개변수로 1을 넣었고 재귀호출을 할 때 count를 1씩 증가시키고 있습니다. 이 상태에서 1 2 3만 출력하려면 count가 4가 되는 시점에서 재귀호출을 중단하면 됩니다.