더북(TheBook)

20.2.2.2 무한 재귀

무한 재귀는 대부분 잠시 동안 실행되다가 최대 재귀 깊이 초과 오류(Maximum recursion depth exceeded)를 일으킨다.

함수가 무한 재귀를 일으킨다고 의심된다면 베이스 케이스(base case)인지 확인해야 한다. 함수에는 재귀 호출을 하지 않고 복귀하는 조건이 있어야 한다. 이러한 조건이 없다면 알고리즘을 다시 생각하고 베이스 케이스를 찾아내야 한다.

베이스 케이스는 있지만 프로그램이 베이스 케이스에 도달하지 못하는 것 같다면 함수의 시작 부분에 인자를 출력하는 print 문을 추가하자. 이러면 프로그램을 실행했을 때 함수가 호출될 때마다 표시되는 출력을 보면서 인자의 값을 알 수 있다. 인자가 베이스 케이스 조건으로 이동하지 않는다면 왜 그런지 생각해야 한다.

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