재귀(Recursion)
재귀란 함수가 자기 자신을 호출하는 것이다.
const countdown = n => {
console.log(n);
if (n === 0) return; // n이 0이라면 함수 종료
countdown(n-1); // n-1을 계속 실행
}
countdown(10);
// output:
// 10
// 9
// 8
// 7
// 6
// 5
// 4
// 3
// 2
// 1
함수 안에 또 자기 자신을 호출해서 n값에서 -1된 값을 계속 return하고 있다.
여기서 가장 중요한 것은 종료 조건이 있다는 것이다.
if ( 조건 ) { return }
만약 종료 조건이 없다면, 재귀는 계속 해당 함수를 호출하여 컴퓨터가 과부하게 걸리거나 원치않은 값까지 return 할 수 있다.
예제
재귀는 팩토리얼(factorial)을 구할 때 사용할 수 있다.
팩토리얼이란 1에서부터 n까지의 정수를 모두 곱한것을 말한다.
2! = 1 * 2
5! = 1 * 2 * 3 * 4 * 5
만약 5!를 구하고 싶다면 아래와 같이 작성하면 된다.
const factorial = n => {
console.log(n)
if ( n === 0 ) {
return 1
} else {
return n * factorial(n-1)
}
}
factorial(5);
'■ 프로그래밍 > JavaScript' 카테고리의 다른 글
배열에서 중복 제거하기(Set) (0) | 2020.05.11 |
---|---|
Object (3) - 접근법 (0) | 2020.05.05 |
Temporal Dead Zone (0) | 2020.04.16 |
Object (2) - 중첩객체 접근 (0) | 2020.03.26 |
Object (1) - 접근, 할당 (0) | 2020.03.25 |