Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Rekurzia Problémy v jazyku Java

V programe Java , rekurzívne metóda je metóda , ktorá volá sama seba . Rekurzívne metódy môžu pomôcť programátorom navrhnúť kód výňatok zjednodušiť problém . Rekurzívne metódy tiež často zdajú byť stručné , ale vytvorenie účinného rekurzívne funkciu , môže byť veľmi náročné . Rovnako ako u slučiek a riadiacich štruktúr v Jave , vývojári musia pracovať cez to , čo sa stane , keď rekurzívne funkcie vykonáva . Rekurzívne metódy spôsobiť rad spoločných problémov , keď nie je správne štruktúrované . Riešenie problémov Zlyhanie

Programátori používajú rekurzívne metódy na riešenie konkrétnych problémov . Samozrejme rekurzívne metóda nebude poskytovať užitočné funkcie , pokiaľ to nerieši problém , ktorý bol navrhnutý pre . To sa niekedy stane , keď programátor sa rozhodli použiť rekurzívne funkciu , kde to nie je vhodné . Všeobecne platí , že rekurzívne metóda je ideálna pre situácie , v ktorej budete musieť vyriešiť problém pomocou iteračných krokov . Zakaždým , keď sa metóda vykonáva , je potrebné , aby tento problém zjednodušiť a priniesť svoj ​​program o krok bližšie k riešeniu . Konečný výsledok rekurzívne metódy by malo byť riešenie vášho problému , napríklad Vyhľadanie prvku v objekte zberu dát .
No End Case

Aby rekurzívne funkcie pracovať bez toho, aby sa program zasekol v nekonečnej slučke , musí mať dobre definovaný koniec prípadu . To znamená , že musí existovať konečné prevedenie , skôr ako spôsob vykonávania donekonečna . Programátori často vykonávať toto použitie podmienené príkazy vnútri metódy , ako v nasledujúcom príklade : public void doItRecursively ( int num ) { if ( num < 1 ) return ; else { System.out.println ( num ) ; doItRecursively ( num /2 ) ; } }

Ak chcete volať túto funkciu , program , môžete použiť nasledujúci kód : doItRecursively ( 10 ) ;

V tomto prípade bude funkcia vykonávať päťkrát , ukončenie na piatej iteráciu . Zakaždým , keď sa metóda vykonáva sa blíži ku konečnému scenáru , ktorý podmienený príkaz if skontroluje pre . Je-li metóda neobsahoval podmienený príkaz , by to iterovat do nekonečna .
Nie Rekurzia

otázka proti nekonečne looping iteračné metóda je metóda , že nie je vôbec iteráciu . To tiež sa stane , keď podmienený príkaz nie je správne štruktúrované . Napríklad , s ohľadom na spôsob " doItRecursively " , nasledujúce zmenené if by spôsobiť problém : if ( num > 0 ) return ;

Ak metóda je len volaná s kladnou celočíselnú hodnotu ako parameter , jeho obsah sa nikdy iterácii as bolo dosiahnuté hneď koncový bod .
Nesprávna metóda vyzýva

Ak programátor volanie rekurzívne metódy nemá jasný prehľad o jeho funkcie , môžu použiť takým spôsobom , ktorý spôsobuje , že nekonečné opakovanie alebo žiadne opakovanie . Napríklad, nasledujúci zmenená podmienené kód v metóde môže ľahko byť nazývaný nesprávne : if ( num < 0 ) return ;

Ak metóda je volaná len s kladnými hodnotami integer parameter , bude to nikdy dosiahnuť tohto koncového bodu a spôsobí nekonečnú slučku . Rekurzívne metódy môžu spôsobiť mnoho z rovnakých úskalia ako slučky , takže to vyžaduje prax pre účinné vykonávanie .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené