재귀함수란?
말 그대로 자기 자신을 호출하는 함수이다
function recursive(variable) {
...
...
if(조건 충족){
return result;
} else{
return recursive(value);
}
}
이런식으로 while 문처럼 무한 반복이 아닌 종료 조건이 있는 전제 하에 자기 자신을 호출하는 함수이다.
def recursive_factorial():
print('재귀함수')
recursive_factorial()
recursive_factorial()
실행시키면 '재귀함수'를 계속해서 출력하다가 어느 순간 오류가 날 것
재귀 함수를 무한히 사용하는 것은 오류를 발생시킬 수 있으므로 재귀 함수가 언제 끝날지, 종료 조건을 명시해줘야 한다. 예를 들어 위의 재귀 함수가 10번만 실행시키고 종료시키려면 아래와 같이 함수를 수정하면 된다.
def recursive_factorial(i):
if i == 10 :
return
print(i, '번째 재귀함수에서', i+1, '번째 재귀 함수를 호출')
recursive_factorial(i + 1)
print(i, '번째 재귀 함수를 종료')
recursive_factorial(1)