Изучаю JavaScript, рекурсия. Пример из учебника.
Задача: возведение числа x в натуральную степень n. В данном примере функция с параметрами (2,3).
Код:
function pow(x,n) {
if (n != 1) {
return x *= pow(x,n - 1);
} else {
return x;
}
}
alert( pow(2,3)); // 8
Не могу разобраться, как работает данная функция. ( x, n) это ведь всего лишь параметры которые мы передаем, почему здесь в pow return x *= pow(x,n - 1);
что-то происходит и откуда взялся этот -1?
x *= pow(2,2);
что дальше происходит и почему?
Правильно передаём параметры 2, 3
3
не равно 1
, да ---> переходим в блок if
x
. Тут краткая запись она означает x = x * результат выполнения функции
.
Возвращаем какой результат? --> x
умноженный на результат выполнения функции pow
, с новыми параметрами. Какими ? 2, 3-1 --> 2, 2
Т.е. функция вызывает, сама себя). И поехали ---->
Проверяем теперь уже 2
не равно 1
, да ---> переходим в блок if
Возвращаем результат. x
умноженный на pow(2, 1);
Результат снова записали в х.
1 не равно 1
- это условие ложно, т.к. 1=1, значит переходим в блок else
и просто возвращаем x
. А там у же накопились значения с предыдущих шаговВиртуальный выделенный сервер (VDS) становится отличным выбором
Доброго всем дня, в приложении присутствует таблица с колонкой Id и к каждой колонке есть кнопкаНужно по нажатию кнопки вводить в консоль...