@chulacyber

Что написано в коде на JS?

Привет, начал учить js, и не пойму, как работает рекурсия в цикле, объясните поэтапно, где, как и что происходит! Спасибо ))
function sumTo(n) {
    var sum = 0;
    for (var i = 1; i <= n; i++) {
      sum += i;
    }
    return sum;
  }
  
  alert( sumTo(2) );
  • Вопрос задан
  • 598 просмотров
Решения вопроса 1
dimovich85
@dimovich85 Куратор тега JavaScript
https://u-academy.net/
А где тут рекурсия? Здесь функция вызывает функцию и не более. Здесь есть цикл.
Сначала объявляется функция с параметром n. Далее создается переменная sum, она локальная внутри функции. Сначала равна 0.
Далее запускаем цикл, и задаем условия цикла, что пока переменная i, которая сначала равна 0, не станет меньше чем, или равен параметру n, надо выполнять действия, которые в фигурных скобках, а в конце каждого цикла переменную i увеличиваем на 1. В цикле берем переменную sum и к её текущему значению прибавляем значение i. После того, как цикл завершится функция возвращает sum. В итоге получаем в алерте сумму всех последовательных чисел от одного до 2, в данном примере, то есть 3.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
SerafimArts
@SerafimArts
Senior Notepad Reader
Я просто дополню уже существующие ответы, заметив, что данный код полностью эквивалентен вот этому варианту:
function sumTo(n) {
    return (n * (n + 1)) / 2;
}
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
здесь нет никакой рекурсии
Ответ написан
Комментировать
mikhailio
@mikhailio
Web/Mobile developer
Возможно я немного непонял вопроса, но если необходима рекурсия, тогда ваша функция будет такой:
function sumTo(n) {
  if (n > 0) {
    return n + sumTo(n - 1);
  }

  return 0;
}
Ответ написан
Комментировать
@frees2
Получаем цифру в n. От этого будет зависеть "название" функции.
Если цифра есть больше 1 то назначаем переменным какие то значения...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект
22 нояб. 2024, в 03:54
1500 руб./за проект