В компютърното програмиране терминът рекурсивно описва функция или метод, който многократно изчислява по-малка част от себе си, за да достигне до крайния резултат. Той е подобен на итерацията, но вместо да повтаря набор от операции, рекурсивната функция осъществява повторение, като се позовава на себе си в собствената си дефиниция. Докато понятието за рекурсивно програмиране може да бъде трудно да се схване първоначално, овладяването му може да бъде много полезно. Рекурсията е един от основните инструменти на компютърните науки.
Класически пример е рекурсивният метод за изчисляване на факториал на число. Факториалът на цяло число n, което е записано като n!, е резултат от умножаване на n с всички положителни числа, по-малки от n. Например, 3! = 3 x 2 x 1, което води до 6 и 4! = 4 x 3 x 2 x 1, което води до 24. Един ефективен начин за изчисляване на факториал е чрез използване на рекурсивна функция.
По-долу е даден пример за рекурсивна факториална функция, написана в JavaScript.
функционален фактор (n) {
връщане (n === 0)? 1: n * фактор (n-1);
}
Както можете да видите, част от дефиницията на функционалната фактор е резултат от факториал, изпълнен на по-малко цяло число. Като се извиква, той може да умножи числото с всяко положително число по-малко от него и след това да върне крайния резултат. Рекурсивните функции могат да бъдат полезни при други изчисления, като например изчисляване на числата на Фибоначи или най-големия общ делител.
Използването на рекурсивна логика може да има някои пропадания, включително създаването на безкраен цикъл в програмирането. Поради тази причина, осигуряването на условие за бягство (като do докато) в програмирането помага да се намали, ако не и да се елиминира, възможността за поява на безкраен цикъл. Ако възникне безкраен цикъл, програмата може да използва голяма част от паметта на компютъра и може да доведе до спиране на работата на програмата, операционната система или компютъра.
Escape, Function, Loop, програмни термини