ЈаваСцрипт рекурзија (са примерима)

У овом упутству ћете научити о рекурзији у ЈаваСцрипт-у помоћу примера.

Рекурзија је процес позивања самог себе. Функција која себе позива назива се рекурзивна функција.

Синтакса рекурзивне функције је:

 function recurse() ( // function code recurse(); // function code ) recurse();

Овде је recurse()функција рекурзивна функција. Позива се унутар функције.

Рад рекурзије у ЈаваСцрипт-у

Рекурзивна функција мора имати услов да престане да позива себе. У супротном, функција се позива на неодређено време.

Једном када је услов испуњен, функција престаје да позива себе. Ово се назива основни услов.

Да бисте спречили бесконачну рекурзију, можете користити иф … елсе наредбу (или сличан приступ) где једна грана врши рекурзивни позив, а друга не.

Дакле, то генерално изгледа овако.

 function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();

Једноставан пример рекурзивне функције био би одбројавање вредности до 1.

Пример 1: Штампање бројева

 // program to count down numbers to 1 function countDown(number) ( // display the number console.log(number); // decrease the number value const newNumber = number - 1; // base case if (newNumber> 0) ( countDown(newNumber); ) ) countDown(4);

Оутпут

 4 3 2 1

У горенаведеном програму, корисник приликом позивања функције преда број као аргумент.

У свакој итерацији, вредност броја се смањује за 1 и функција countDown()се позива док број није позитиван. Ево newNumber> 0основног услова.

Овај рекурзивни позив може се објаснити у следећим корацима:

 цоунтДовн (4) исписује 4 и позива цоунтДовн (3) цоунтДовн (3) исписује 3 и позива цоунтДовн (2) цоунтДовн (2) исписује 2 и позива цоунтДовн (1) цоунтДовн (1) штампа 1 и позива цоунтДовн (0)

Када број достигне 0 , основни услов је испуњен и функција се више не позива.

Пример 2: Пронађи факторијел

 // program to find the factorial of a number function factorial(x) ( // if number is 0 if (x === 0) ( return 1; ) // if number is positive else ( return x * factorial(x - 1); ) ) const num = 3; // calling factorial() if num is non-negative if (num> 0) ( let result = factorial(num); console.log(`The factorial of $(num) is $(result)`); )

Оутпут

 Фактор од 3 је 6

Када позивате функцију factorial()са позитивним целим бројем, она ће се рекурзивно позвати смањењем броја.

Овај процес се наставља све док број не постане 1 . Онда када тај број достиже 0 , 1 је враћена.

Рад ЈаваСцрипт рекурзије у Фацториалу

Овај рекурзивни позив може се објаснити у следећим корацима:

 факторијел (3) враћа 3 * факторијел (2) факторијел (2) враћа 3 * 2 * факторијел (1) факторијел (1) враћа 3 * 2 * 1 * факторијел (0) факторијел (0) враћа 3 * 2 * 1 * 1

Занимљиви Чланци...