Показать сообщение отдельно
  #5 (permalink)  
Старый 09.03.2013, 19:17
Аватар для helpmepls
Интересующийся
Отправить личное сообщение для helpmepls Посмотреть профиль Найти все сообщения от helpmepls
 
Регистрация: 01.03.2013
Сообщений: 12

вроде понял?
Сообщение от 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)
Ответить с цитированием