Menu
Coddy logo textTech

Введение в рекурсию

Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 47 из 65.

Рекурсия — это метод программирования, при котором функция вызывает саму себя для решения задачи. Представьте это как взгляд в два зеркала, расположенных друг напротив друга: каждое отражение содержит уменьшенную версию того же изображения, создавая бесконечный цикл до тех пор, пока отражения не станут слишком маленькими, чтобы их можно было увидеть.

Каждой рекурсивной функции необходимы два основных компонента для правильной работы. Базовый случай — это условие, которое останавливает рекурсию; это похоже на момент, когда зеркальные отражения становятся слишком маленькими, чтобы иметь значение. Без базового случая ваша функция будет вызывать саму себя бесконечно, что в конечном итоге приведет к аварийному завершению программы.

Рекурсивный шаг — это этап, на котором функция вызывает саму себя с измененной версией исходной задачи. При каждом вызове функции она должна работать над уменьшенной или упрощенной версией задачи, постепенно приближаясь к базовому случаю.

Представьте, что вы ищете ключи в стопке бумаг. Вы можете проверить верхний лист, и если ключей там нет, вы проделаете то же самое с оставшейся стопкой (которая теперь стала на один лист меньше). Вы будете повторять этот процесс до тех пор, пока либо не найдете ключи, либо пока не закончатся листы для проверки.

Этот подход, заключающийся в разбиении большой задачи на более мелкие, идентичные задачи, — это то, что делает рекурсию такой мощной для определенных типов задач программирования.

Шпаргалка

Рекурсия — это метод программирования, при котором функция вызывает саму себя для решения задачи путем ее разбиения на более мелкие, идентичные задачи.

Каждая рекурсивная функция нуждается в двух основных компонентах:

Базовый случай: Условие, которое останавливает рекурсию для предотвращения бесконечных циклов.

Рекурсивный шаг: Часть, где функция вызывает саму себя с измененной версией исходной задачи, постепенно приближаясь к базовому случаю.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком