подскажите почему в примере https://jsfiddle.net/ngb80yu4/ если i++ сменить на i+1 получается бесконечный цикл, в чем причина где именно зацикливается эта i
fleshik, i + 1 всегда будет одно и то же число, потому что значение i не перезаписывается. счетчик нужен для выхода из цикла, если условие выхода не срабатывает мы получаем бесконечный цикл. i + 1 это в принципе ошибочная запись, надо i = i + 1 или i +=1 или i++
Антон Литвиненко, я что то не понял здесь вроде сказано по другому или я ошибаюсь https://qna.habr.com/q/375923
(Запись вида i++ добавляет +1, но возвращает старое значение переменной
Запись вида i+1 идентична записи ++i добавляет +1, и возвращает новое значение переменной)
fleshik, Да, возвращает, но потом меняет.
То есть i++ вернёт текущее, но всё равно увеличит и при следующем обращении к переменной будет на 1 больше.
++i сразу увеличит и вернёт.
Вадим, ну тогда вот это то что касается записи i+1 (Запись вида i+1 идентична записи ++i добавляет +1, и возвращает новое значение переменной) НЕ верное утверждение?
fleshik, таемае, ну что непонятно? i+1 возвращает текущую i плюс один, но не меняет ее, тоесть если i была 20, то на каждой итерации будет возвращать 21. но при этом и не перезаписывается и ты получаешь бесконечный цикл
fleshik, да, такое утверждение НЕ верное.
i+1 НЕ меняет i. Оно берёт значение i, прибавляет ему 1, и НЕ сохраняет в i НИКОГДА.
i++ - берёт значение i, возвращает его в место вызова, и МЕНЯЕТ значение, которое хранится в переменной i на 1.
++i сразу увеличивает значение в переменной i на 1 и возвращает его в место вызова.