Рекурсия внутри цикла в js, ЧТО здесь вообще происходит?

Можете объяснить поочередно что куда зачем???
function rec(value) {
	for (let i = 0; i < 2; i++) {

		console.log("start " + value);

		if (value <= 0) return;

		rec(--value);
		console.log('end');
	}
}

rec(3)

Результат :
start 3
start 2
start 1
start 0
end
start 0
end
start 1
start 0
end
end
start 2
start 1
start 0
end
start 0
end
  • Вопрос задан
  • 330 просмотров
Решения вопроса 1
@twolegs
Расставил отступы, чтобы было видно что на каком уровне вложенности выполняется.
start 3
    start 2
        start 1
            start 0
        end
        start 0
    end
    start 1
        start 0
    end
end
start 2
    start 1
        start 0
    end
    start 0
end


Возможные причины выноса мозга:
1. end не выводится после 0. Т.е. вероятно, вы для себя неправильно расставили все соответствия при выводе.
2. Цикл всегда ограничен двумя итерациями.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы