function sumTo(num) {
//base case (조건이 충족되면 탈출)
if (num <= 0) {
return 0
}
//Recursive Case (조건이 안되면 재귀 함수로)
return num + sumTo(num - 1)
}
sumTo(5);
num = 5;
= 5 + 4 + 3 + 2 + 1
num이 0이랑 같거나 작으면 0값으로 탈출
if (num <= 0) {
return 0
}
num = 5이므로 recursive case 진행
return num + sumTo(num - 1)
5 (재귀함수)=> 4 (재귀함수)=> 3 (재귀함수)=> 2 (재귀함수)=> 1(재귀함수)
num = 1 이면
function sumTo(1) {
if (num <= 0) {
return 0
}
return 1 + sumTo(1 - 1)
//1 + sumTo(0) => sumTo(0) 재귀 함수 진행//
}
재귀 함수 somTo(0)
function sumTo(0) {
if (0 <= 0) {
return 0
}
return num + sumTo(num - 1)
}
num이 0이므로 0 값으로 탈출
if (0 <= 0) {
return 0
}
다시 거꾸로 돌아 온다
num = 1
function sumTo(1) {
return 1 + sumTo(1 - 1)
// 1 + sumTo(0)
// 1 + 0
// retrun value 1
}
num = 2
function sumTo(2) {
return 2 + sumTo(2 - 1)
// 2 + sumTo(1)
// 2 + 1
// retrun value 3
}
num = 3
function sumTo(3) {
return 3 + sumTo(3 - 1)
// 3 + sumTo(2)
// 3 + 3
// retrun value 6
}
num = 4
function sumTo(4) {
return 4 + sumTo(4 - 1)
// 4 + sumTo(3)
// 4 + 6
// retrun value 10
}
num = 5
function sumTo(5) {
return 5 + sumTo(5 - 1)
// 5 + sumTo(4)
// 5 + 10
// retrun value 15
}
= 15