- 어떤 함수가 스스로를 호출 하는 함수.
- 어떤 문제를 해결할 때 , 동일한 구조의 더 작은 문제를 해결함으로써 주어진 문제를 해결 하는것을 재귀(recursion) 라고 함
- 재귀 함수는 while과 for문으로 표현할 수 있지만, while문과 for문이 복잡해지면 복잡해질수록 재귀를 사용한 코드가 더 간결하고 이해하기 쉬운 경우가 있음.
재귀 함수 사용시에는 base case와 recursive case를 나누어서 생각해야한다.
- base case=> 탈출조건 이라고 불리며 문제를 가장 단위로 쪼갠다고 생각하면 됨.
더 이상 쪼갤 수 없는 경우
- recursive case => 재귀 조건이라고 불리며 재귀 함수를 구현하고 재귀 함수의 탈출 조건
간단한 예제1
입력받은 모든 수의 합을 더하는 것을 재귀 함수로 나타내면 하기와 같음
function arrSum(num) {
//base case
if(num ===0) {
return 0
}
//recursive case
return num + arrSum(num-1)
}
arrSum(10) // 55
https://stackoverflow.com/questions/931762/can-every-recursion-be-converted-into-iteration