JavaScript

Кто знает JavaScript помогите

Не могу понять почему выводит 049

for (var i = 0, j = 2; i < 10; i++, j++, i = i + j) {
document.write(i)
}

объясните пожалуйста как работает данный код
Эта скорей логическая задача чем имеющее к программированию условный цыкл for делится на три части разделённых ;
1 то что выполняется один раз перед началом цикла обычно в него вносят перемеренные начальные значения счётчиков в вашем случае это var i = 0, j = 2;
2 потом идет условие выхода из цикла если условие совладает вашем случае это i < 10;
3 и заключительный блок который выполняется каждый проход в конце кода находящегося в цыкле или как обычно замкнутых в фигурных скобках {} вашем случае это i++, j++, i = i + j
При первом проходе i=0
При втором проходе i=1 j=3 i=1+3 то есть 4
При третьем i=5 j=4 i=5+4 то есть 9
При четвёртой попытки выполнить цыкл i=9 j=5 i=9+5 и того 14 что несовпадает с условием выполнения и влечет выход из цикла
Максим Петрич
Максим Петрич
92 657
Лучший ответ
Анатолий Волковец До меня дошло, ведь в начале 3 прохода сохраняется i с предыдущего прохода
На каждой итерации цикла, значение счетчиков i и j увеличивается на единицу, а затем к i прибавляется j.
По шагам:
i = 0 (начальное значение)
1 + 3 = 4
5 + 4 = 9
Олег Вечерский
Олег Вечерский
70 117
цикл for выполняется так
var i = 0, j = 2;
while (i < 10) {
document.write(i);
i++;
j++;
i = i + j;
}
Выполняй по шагам (на бумаге или в отладчике) и разберёшься.
Вычисления можно упростить:
j++;
i += j + 1;
Олег Вечерский Еще проще будет i += ++j + 1 (и по-моему, такая форма намного проще для понимания... чем указанная в вопросе).