Рекурсия внутри цикла в 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
  • Вопрос задан
  • 322 просмотра
Решения вопроса 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. Цикл всегда ограничен двумя итерациями.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 22:48
100 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект