재귀(recursion)란 하나의 함수가 특정 기저 조건(base condition)을 만족할 때까지 자기 자신을 반복적으로 호출하는 프로그래밍 기법입니다. 이번 예제에서는 재귀 함수를 활용해 숫자를 내림차순으로 출력해 보겠습니다.
예제 코드
아래 코드에서 recursiveFunction은 전달받은 숫자를 콘솔에 출력한 뒤, 그 숫자가 0보다 크면 자신을 다시 호출하면서 인자를 1씩 감소시킵니다. 이 과정이 반복되어 5부터 0까지 내림차순으로 출력됩니다.
function recursiveFunction(num) {
console.log(num);
if (num > 0) {
recursiveFunction(num - 1);
}
}
recursiveFunction(5);프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름이 demo304.js라고 가정하겠습니다.
실행 결과
위 프로그램을 실행하면 다음과 같이 숫자가 내림차순으로 출력됩니다.
PS C:\Users\Amit\javascript-code> node demo304.js 5 4 3 2 1 0
코드 동작 원리 정리
1. recursiveFunction(5)가 호출되면 먼저 5를 출력합니다.
2. 조건문 num > 0이 참이므로 recursiveFunction(4)를 재귀 호출합니다.
3. 같은 방식으로 4, 3, 2, 1이 차례로 출력됩니다.
4. 마지막으로 0이 출력된 후에는 조건이 거짓이 되어 재귀 호출이 종료됩니다.
5. 이처럼 기저 조건이 없으면 함수가 무한히 호출되어 스택 오버플로(stack overflow)가 발생할 수 있으므로 주의해야 합니다.