본문 바로가기
Computer Science/JavaScript

자바스크립트 Chapter 23 Recursion

by Write and Remember 2019. 5. 16.

 

모든 자바스크립트 개발자가 알아야 하는 33가지 개념

 

Chapter 23 Recursion

 

자바스크립트 재귀에 대해 알아보자.

 

재귀란?

 

프로그래밍의 주요 개념 중 하나다.

 

재귀는 함수가 특정 상태에 도달할 때까지

 

함수를 호출할 때 발생한다.

 

즉 함수가 함수 자신을 호출하는 것을 의미한다.

 

재귀 함수에는 세 가지 주요 기능이 있어야 한다.

 

종료 조건 = 오류 방지 (Termination)

 

기본 조건 = 재귀 중지 (Base)

 

재귀 (Recursion)

 

코드로 살펴보면,

 

function factorial(a) {
 // 종료 조건
 if (a < 0) return;
 
 // 기본 조건
 if ( a === 0) return 1;
 
 // 재귀
 return a * factorial(a - 1);
}

factorial(4); // 24

 

factorial(4) returns 4 * factorial(3)
factorial(3) returns 3 * factorial(2)
factorial(2) returns 2 * factorial(1)
factorial(1) returns 1 * factorial(0)
factorial(0) returns 1

// 내부에서 외부로 순차적 반환

factorial(0) returns 1                 => 1
factorial(1) returns 1 * factorial(0)  => 1 * 1
factorial(2) returns 2 * factorial(1)  => 2 * 1 * 1
factorial(3) returns 3 * factorial(2)  => 3 * 2 * 1 * 1
factorial(4) returns 4 * factorial(3)  => 4 * 3 * 2 * 1 * 1
// 4 * 3 * 2 * 1 * 1 = 24

 

코드를 보면 재귀는 단순히 중첩된 함수 호출 그룹이다.

 

그리고 중첩된 함수를 사용하면 가장 안쪽에 중첩된 함수가

 

먼저 반환하기 때문에 

 

내부에서 외부로 순차적 반환한다는 것이 포인트다.

댓글0