Показать сообщение отдельно
  #1 (permalink)  
Старый 25.01.2012, 22:04
Аватар для function
Говнокодер со стажем
Отправить личное сообщение для function Посмотреть профиль Найти все сообщения от function
 
Регистрация: 06.01.2012
Сообщений: 164

Работа рекурсии
Привет, люди. Читал ваш учебник и наткнулся на рекурсию...

function pow(x, n) {
  return (n != 1) ? x*pow(x,n-1) : x;
}

alert( pow(2, 3) );


Представляю её работу в целом, за исключением одного "но". Когда n!=1 становится false, функция перестаёт сравнивать его с x*pow(x,n-1). Почему? Ведь она может вывести false (ну не просчитывает же программа, что нет, не запуская её), и значение будет верно. И ещё 1 вопрос. Когда дело доходит до запуска новой функции, старая останавливается и ждёт результата?
Ответить с цитированием