In deze tutorial leer je over de recursieve Java-functie en de voor- en nadelen ervan.
In Java staat een methode die zichzelf aanroept bekend als een recursieve methode. En dit proces staat bekend als recursie.
Een voorbeeld in de fysieke wereld zou zijn om twee parallelle spiegels tegenover elkaar te plaatsen. Elk object ertussenin zou recursief worden weergegeven.
Hoe recursie werkt?

In het bovenstaande voorbeeld hebben we de recurse()
methode vanuit de main
methode aangeroepen . (normale methodeaanroep). En binnen de recurse () -methode roepen we opnieuw dezelfde recurse-methode aan. Dit is een recursieve oproep.
Om de recursieve aanroep te stoppen, moeten we enkele voorwaarden binnen de methode opgeven. Anders wordt de methode oneindig aangeroepen.
Daarom gebruiken we de if… else-instructie (of vergelijkbare benadering) om de recursieve aanroep binnen de methode te beëindigen.
Voorbeeld: faculteit van een getal met behulp van recursie
class Factorial ( static int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) public static void main(String() args) ( int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); ) )
Uitgang :
4 faculteit = 24
In het bovenstaande voorbeeld hebben we een methode met de naam factorial()
. Het factorial()
wordt aangeroepen vanuit de main()
methode. met de numerieke variabele doorgegeven als een argument.
Let hier op de verklaring,
return n * factorial(n-1);
De factorial()
methode roept zichzelf op. Aanvankelijk is de waarde van n 4 binnenin factorial()
. Tijdens de volgende recursieve aanroep wordt 3 doorgegeven aan de factorial()
methode. Dit proces gaat door totdat n gelijk is aan 0.
Als n gelijk is aan 0, if
retourneert de instructie false, dus 1 wordt geretourneerd. Ten slotte wordt het verzamelde resultaat doorgegeven aan de main()
methode.
Werking van Factorial Program
De onderstaande afbeelding geeft u een beter idee van hoe het faculteitsprogramma wordt uitgevoerd met behulp van recursie.

Voordelen en nadelen van recursie
Wanneer een recursieve aanroep wordt gedaan, worden nieuwe opslaglocaties voor variabelen op de stapel toegewezen. Aangezien elke recursieve aanroep terugkeert, worden de oude variabelen en parameters uit de stapel verwijderd. Daarom gebruikt recursie over het algemeen meer geheugen en is het over het algemeen traag.
Aan de andere kant is een recursieve oplossing veel eenvoudiger en kost het minder tijd om te schrijven, debuggen en onderhouden.
Aanbevolen literatuur: wat zijn de voor- en nadelen van recursie?