Рекурсивные функции.

Большинство языков программирования поддерживает рекурсивные функции, то есть такие, которые вызывают сами себя. Это весьма мощный инструмент, позволяющий создавать довольно изящные и функциональные программы, но вот используется он достаточно редко. Технически рекурсивные функции ничем не отличаются от обычных. Единственное различие заключается в том, что где-то в коде функции находится вызов ее самой. Например, если вы напишете

function test() { 
разные операторы 
test();
разные операторы
   }
то это и будет рекурсивная функция.

Рекурсия бывает:

  • Прямая
  • Непрямая

Рассмотрим пример рекурсивной функции (прямой), используемой при вычислении факториала x!

function factorial($x) {
if ($x === 0) return 1;
else return $x*factorial($x-1);
}
echo factorial(7);
  

В рассмотренном примере пользовательская функция factorial() вызывает сама себя, что является прямой рекурсией. Непрямая рекурсия возникает, когда первая функция вызывает вторую, а вторая — первую.

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Chinese (Traditional)EnglishJapaneseRussianUkrainian

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: