ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바스크립트 Chapter 23 Recursion
    Computer Science/JavaScript 2019.05.16 16:55

     

    모든 자바스크립트 개발자가 알아야 하는 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