Не понимаю, в чем проблема?

216
13 февраля 2017, 16:38

Есть задача: нужно вызвать функцию sumTo с аргументом n. n - это сколько раз нужно добавить к i единицу. Почему мне возвращает 101? т.е. почему прибавляется только один раз если есть for? пробовал и while, видимо тут не в цикле проблема.

function sumTo(n) { 
  for (var i = 1; i <= n; i++) { 
    i = i + 1; 
  } 
  return i; 
} 
console.log(sumTo(100));

Answer 1

Проблема в цикле.

Переменная i является счетчиком цикла. На каждой итерации проверяется значение этой переменной и если оно больше параметра n происходит выход из цикла.

Таким образом при вызове sumTo(100) как только значение суммы становится больше 100, в данном случае 101 - происходит выход из цикла и возврат значение переменной.

Если нужно просуммировать числа от 1 до n, то результат лучше хранить в отдельной переменной:

function sumTo(n) { 
  var sum = 0; 
  for (var i = 1; i <= n; i++) { 
    sum = sum + i; 
  } 
  return sum; 
} 
console.log(sumTo(100));

READ ALSO
запоминаем checkbox при обновлении страницы - jquery

запоминаем checkbox при обновлении страницы - jquery

Доброго времени суток! Направьте неопытного )) Есть страница с кучей checkbox'ов, имена разные, их много

326
Как вытащить файл из URL?

Как вытащить файл из URL?

Находил в интернете несколько ответов, но мой случай не совсем стандартный так как в пути кроме ссылки на файл могут появляться дополнительные...

329
Радио кнопки отображаются в Safari как чекбоксы

Радио кнопки отображаются в Safari как чекбоксы

Есть форма, в которой имеются радио кнопкиЭти радио кнопки на мобильном сафари отображаются как чекбоксы (а выбранные радио кнопки отображаются...

253