Цикл for в цикле for. Как оно считает?

let sum = 0;
for (let i = 0; i < 3; i++) {
  for (let j = 0; j < 6; j++) {
    sum = i + j
  }
}
console.log(sum);

Ответ 7. Но почему я здесь вижу 6? Цикл с j будет считать трижды. То есть

1) 0 + 0 = 0
2) 1 + 1 = 2 (sum)
3) 2(sum) + 2 + 2 = 6  

Подскажите где еще 1 затерялась?


Ответы (2 шт):

Автор решения: vikttur

Первый шаг внешнего цикла i = 0.

Переход к внутреннему циклу. Внутренний цикл отработает 6 шагов (j от 0 до 5)

Второй шаг внешнего цикла i = 1.

Переход к внутреннему циклу. Внутренний цикл отработает 6 шагов (j от 0 до 5)

Третий шаг внешнего цикла i = 2.

Переход к внутреннему циклу. Внутренний цикл отработает 6 шагов (j от 0 до 5)

Выход из внешнего цикла.

sum = i + j - каждый раз суммируются значения счетчиков, но суммы не сохраняются, не дополняются. В итоге в консоль будет выведена сумма последних значений счетчиков

→ Ссылка
Автор решения: vsemozhebuty

Добавьте вывод в каждой итерации и посмотрите, что на самом деле проихсодит:

let sum = 0;
for (let i = 0; i < 3; i++) {
  for (let j = 0; j < 6; j++) {
    sum = i + j
    console.log(`sum = ${i} + ${j}`)
  }
}
console.log(sum);

→ Ссылка