Skip to main content

Ano ang isang recursive call?

Sa programming, ang isang recursive call ay isang utos sa loob ng isang subroutine o function na nagsasabi sa programa na magpatakbo muli ng parehong subroutine.Ang paulit -ulit na pagganap ay maaaring ang direktang resulta ng pag -andar, o isang pangalawang pag -andar ay maaaring ma -trigger na, naman, ay tumutukoy pabalik sa unang pag -andar.Ang isang recursive call ay may ilang pagkakapareho sa dreaded infinite loop, ngunit ang subroutine ay palaging may isang kondisyon na pahayag na nagsasabi sa programa kung kailan ititigil ang pag -uulit ng pag -urong.

Ang konsepto ng pag -urong ay marahil pinakamahusay na isinalarawan sa pamamagitan ng paggamit ng isang halimbawa.Ipagpalagay na ang isang bubong ay nag -aaplay ng mga bagong shingles sa isang bahay.Upang magsimula, dapat siyang magdala ng isang bundle ng mga shingles sa bubong.Kapag naipasok na niya ang unang bundle sa lugar, dapat siyang umakyat sa hagdan, kunin ang isa pang bundle at kuko ito sa lugar.Ang proseso ay nagpapatuloy bilang isang serye ng go, fetch, bumalik hanggang sa huling shingle ay inilapat.Sa puntong iyon, ang bubong ay libre upang magpatuloy sa susunod na trabaho o umuwi.Mayroong panimulang punto, dapat makuha ng bubong ang kailangan niya, bumalik sa simula at, kapag natutugunan ang pangwakas na kondisyon, huminto.Ito ay talaga kung ano ang ginagawa ng programa;Nagsisimula ito, nagpapatupad ng isang aksyon, bumalik sa sarili at nagtatapos kapag naganap ang pagtatapos ng kondisyon.Mahalaga ito para sa lahat ng mga tawag sa recursive;Kung wala ito, ang pag -andar ay magpapatuloy na ulitin.Pinakamahusay, nagreresulta ito sa pag -draining ng mga mapagkukunan ng memorya ng mga system.Karaniwan ang labis na karga ay mag -crash ng programa sa ilang mga punto, ngunit sa oras na natuklasan ang problema, maaaring gawin ang makabuluhang pinsala.Kung, halimbawa, ang layunin ay upang mahanap ang kabuuang bilang ng imbentaryo ng lahat ng stock na may mga numero ng bahagi na mas malaki kaysa sa 999, isang para sa loop ay nagsasabi sa programa na hanapin ang lahat ng mga kwalipikadong pagkakataon at isang habang ang loop ay nagsasabi sa programa upang maisagawa ang loop lamang habang ang nakasaadmay bisa ang kondisyon.Ang isang recursive call ay maaaring sabihin upang pagsamahin ang ilan sa mga tampok ng mga loop na ito na may isang pahayag na kung-pagkatapos-else;Kung ang kondisyong ito ay totoo, gawin ito, o iba pa ay gumawa ng ibang bagay kung ang kondisyon ay hindi totoo.Ang recursion ay karaniwang nagbibigay -daan para sa higit pang compact code, gayunpaman, at pinapayagan ang problema na maipasa sa function na mas malapit sa punto na kinakailangan.