Сообщение от danik.js
|
helpmepls, выполняй код пошагово.
|
Правильно ли я понял, что пошагово это вот так:
Код:
|
function sumTo(n)
{
console.log("bla 1 относится к " + n);
if (n == 3) return n;
console.log("bla 2 относится к " + n);
res=sumTo(n-1) + sumTo(n-1);
console.log("bla 3 относится к " + n);
return res;
}
alert( sumTo(5) ); |
rgl, так все верно понял?
bla 1 // выполнится от 5 еще до проверки условия n==3 и до вызова sumTo(5-1)
bla 2 // выполнится от 5 после проверки условия n==3, но до вызова sumTo(5-1)
bla 1 // 1й вызов. (вызовет ДВЕ sumTo(4)). выполнится от 4 еще до проверки условия n==3
bla 2 // 1й вызов. выполнится от 4 после проверки условия n==3
bla 1 // (sumTo(4-1) 2й вызов, вызывает ДВЕ sumTo(3), первая sumTo(3) не проходит проверку if n == 3
bla 1 // вторая sumTo(3) не проходит проверку if n == 3
bla 3 // от завершения первой посчитанной sumTo(4)
bla 1 // до проверки условия, от запуска второй sumTo(4)
bla 2 // после проверки условия, от запуская второй sumTo(4)
bla 1 // (sumTo(4-1) 2й вызов, вызывает ДВЕ sumTo(3), первая sumTo(3) не проходит проверку if n == 3
bla 1 // вторая sumTo(3) не проходит проверку if n == 3
bla 3 // от завершения первой посчитанной sumTo(4)
bla 3 // от завершения sumTo(5)