항해99 Week_14 WIL

그루트·2021년 12월 19일
0

항해 WIL (Week I learned)

목록 보기
14/14

[Javascript] 재귀 (Recursion) 함수 사용 방법

Javascript 함수를 지난 포스팅에서 알아보았습니다. 기존에 함수 사용법과 ES6 이상에서의 함수를 사용하는 방법이 추가되었고 다양하게 함수를 표현해서 사용하는 방법을 알아보았습니다.

이번 포스팅에서는 함수 사용법에 이해서 재귀(Recursion) 함수에 대해서 알아보도록 하겠습니다.


재귀(Recursion)함수란 무엇인가

재귀함수는 어떤 함수 내부에서 다시 자기 자신을 부르는 함수를 의미합니다. 마치 반복문을 돌리듯 자기 자신을 끊임없이 부르다가 특정 조건이 되면 빠져나오는 함수를 재귀 함수라고 합니다.

이런 재귀함순도 직접 만들어서 사용할 수 있습니다. 그렇다면 재귀 함수를 어떻게 만들고 사용할 수 있는지 알아보도록 하겠습니다.


재귀(Recursion)함수의 생성과 사용법

우선 재귀함수는 다음과 같이 만들 수 있습니다.

function recursionFunc() {
...
recursionFunc();
...
}

나와 같은 이름의 함수를 내부에서 실행해 주는 것입니다. 내가 만든 함수 내부에서 다시 나를 부르는 형태이기 떄문에 무한히 계속 반복되는 함수가 됩니다.

따라서 재귀함수를 만들 때에는 반드시 함수를 종료하는 조건을 만들어 주어야 합니다. 재귀 함수를 만들 때 가장 주의해야 할 부분입니다.

그럼 재귀함수를 직접 만들어서 어떻게 사용하는지 소스코드로 만들어 보겠습니다.

소스코드 1. factorial.js

function factorial(num) {
	if (num < 1) {
    	return 1;
        }
        return num * factorial(num - 1);
}

const num = 5;
let result = factorial(num);
console.log(`${num}! = ${result}`);

결과 1.

5!=120

첫 번째 소스코드 1은 팩토리얼(factorial)을 만드는 소스입니다. 팩토리얼은 양의 정수에 대해서 자신보다 작거나 같은 모든 양의 정수의 곱을 의미합니다. 그리고 팩토리얼은 !로 표시합니다.

예를 들어서 5! 은 5*4*3*2*!의 결과인 120이 되는 것이죠, 이것을 프로그래밍으로 옮기는 것입니다.

factorial 함수는 parameter를 1개를 받습니다, 이때 들어온 숫자가 1보다 작은 값이면 양의 정수가 아니므로 함수를 바로 종료시켜줍니다.

1보다 큰 값이라면 자신의 값과 자신보다 1 작은 값을 다시 factorial 함수의 parameter로 넘겨줍니다. 5를 입력했을 경우 아래와 같이 연산이 집행됩니다.

profile
i'm groot

0개의 댓글