위코드 코드카타를 정리한 내용입니다.
재귀(recursion)란, 자신을 정의할 때 자기 자신을 호출하는 방법을 뜻합니다. 예를 들면 아래와 같습니다.
const countdown = n => {
countdown(n-1); // 이렇게 안에서 해당 함수를 다시 호출
}
countdown(10);
위와 같이 작성할 경우 10에서 시작해서 무한으로 마이너스 값이 내려갑니다. 그래서 재귀함수는 언제 멈출 것인지 조건을 주어야 합니다. 0이 되면 종료하도록 코드를 추가하며 아래와 같습니다.
const countdown = n => {
if (n === 0) return;
countdown(n-1);
}
countdown(10);
재귀를 사용해 팩토리얼(factorial)을 구하는 함수를 구현합니다. 팩토리얼은 1부터 n까지의 정수를 모두 곱한 값입니다.
1! = 1
2! = 1 * 2
5! = 1 * 2 * 3 * 4 * 5
n의 값이 1보다 작아질 때까지 n-1 인자를 재귀함수로 넣어서 곱합니다.
const factorial = n => {
if (n < 1) return 1; // n ===1 의 조건을 넣으면 한가지 조건을 통과 못함..
return n * factorial(n-1)
}