HLabs Эксперт
6301
123 подписчика
+ Специалист по компьютерам
Вопрос на форуме эксперта
DemkinAV спросил 1 марта 2015 г.
Может ли рекурсивная процедура/функция не содержать в себе условных операторов и при этом не зацикливаться?
Ответ эксперта
HLabs ответил 1 марта 2015 г.
Простой пример — парсим строчку. Для каждого элемента запускаем рекурсивно функцию парсения. Например, имеем два или три вида разделителей разных уровней. Условий нет, функция не циклится:)
Оцените качество ответа:
Комментарии 2
написал
"парсим строчку" - строчку я понял, как строка символов, то, что в языках pascal, Delphi называется string. Слово "парсим" вижу впервые.
Работать с символами строки позволяет цикл for.
"запускаем рекурсивно" - это как? Есть понятие : обращение к процедуре и/или функции. А рекурсивно или нет - в момент обращения от нас не зависит, это свойство самой процедуры и/или функции, от её реализации. Для этого при её написании, она должна обращаться сама к себе (авторекурсия) хотя бы 1 раз.
написал
Условный оператор - это оператор if.
Оператор "case" - тоже условный оператор, оператор выбора.
Именно они и запрещены при реализации рекурсивной процедуры/функции.
Прошу ответить ещё раз.
Добавить комментарий к ответу
Осталось символов: 500