재귀의 설명 그대로 함수에서 자기 자신을 다시 호출해 작업을 수행하는 방식이다.
그렇기에 특정 분기까지 자기 자신을 계속해서 호출하는데, 주로 반복문을 구현할 때 사용한다.
우리가 흔히 알고 있는 반복문은 for, while 등이 있는데
이러한 반복문으로 구현가능한 로직은 모두 재귀함수로도 가능하고 그 반대 역시 가능하다.
factorial
1 // 반복문으로 구현한 팩토리얼 메서드
2 public int Factorial(int number) {
3 int result = 1;
4 for(int count = number; count > 0; count--) {
5 result = result * count;
6 }
7 return result;
8 }
9
10 // 재귀 호출로 구현한 팩토리얼 메서드
11 public int Factorial(int number) {
12 if(number <= 1) {
13 return 1;
14 }
15 return number * Factorial(number - 1);
16 }