Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java-recursie

Java-recursie

In deze tutorial leer je over de Java recursieve functie, 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 uit de fysieke wereld zou zijn om twee parallelle spiegels tegenover elkaar te plaatsen. Elk object daartussen zou recursief worden gereflecteerd.


Hoe recursie werkt?

In het bovenstaande voorbeeld hebben we de recurse() . genoemd methode vanuit de main methode. (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 in de methode opnemen. Anders wordt de methode oneindig aangeroepen.

Daarom gebruiken we de instructie if...else (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);
    }
}

Uitvoer :

4 factorial = 24

In het bovenstaande voorbeeld hebben we een methode genaamd factorial() . De factorial() wordt gebeld vanaf de main() methode. met het nummer variabele doorgegeven als argument.

Hier, let op de verklaring,

return n * factorial(n-1);

De factorial() methode roept zichzelf aan. Aanvankelijk is de waarde van n 4 binnen factorial() . Tijdens de volgende recursieve oproep wordt 3 doorgegeven aan de factorial() methode. Dit proces gaat door tot n is gelijk aan 0.

Wanneer n is gelijk aan 0, de if statement retourneert false en daarom wordt 1 geretourneerd. Ten slotte wordt het verzamelde resultaat doorgegeven aan de main() methode.


Werking van het faculteitsprogramma

De afbeelding hieronder geeft je een beter idee van hoe het faculteitsprogramma wordt uitgevoerd met behulp van recursie.


Voor- en nadelen van recursie

Wanneer een recursieve aanroep wordt gedaan, worden nieuwe opslaglocaties voor variabelen op de stapel toegewezen. Omdat elke recursieve aanroep terugkeert, worden de oude variabelen en parameters van 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, te debuggen en te onderhouden.

Aanbevolen literatuur:wat zijn de voor- en nadelen van recursie?


Java

  1. Java-operators
  2. Java-interface
  3. Java proberen-met-bronnen
  4. Java-annotaties
  5. Java-annotatietypen
  6. String Length() Methode in Java:Hoe te vinden met Voorbeeld
  7. Java String charAt() Methode met Voorbeeld
  8. Java String endsWith() Methode met voorbeeld
  9. Java String Replace(), ReplaceAll() en ReplaceFirst() methode
  10. Een tekenreeks in Java omkeren met behulp van recursie
  11. Java - Overschrijven