Rekursjon i Java | Forklart

Rekursjon i Java | Forklart
Rekursjonstilnærmingen er veldig egnet for de problemene som kan deles inn i mindre, enklere og repeterende problemer. Det er en prosedyre der en funksjon kaller seg gjentatte ganger/rekursivt, og det må være minst en avslutning/stansingstilstand for å stoppe rekursjonen. Metoden som kaller seg selv beskrives som en rekursiv funksjon og hele prosessen er kjent som rekursjon I Java.

Denne skrivingen presenterer en dyp forståelse av følgende konsepter relatert til Java -rekursjon:

  • Hva er rekursjon i Java
  • Grunnleggende syntaks for rekursjonsfunksjon
  • Hvordan jobbe med Java -rekursjon

Så la oss komme i gang!

Hva er rekursjon i Java

Vanligvis er vi vitne til en funksjon som kaller en annen funksjon eller funksjoner. Imidlertid kaller en rekursiv funksjon seg gjentatte ganger. De undergitte utdragene skildrer hvordan en normal metode skiller seg fra en rekursiv metode.

Grunnleggende syntaks for normal funksjon

public void FirstFunction ()

System.ute.println ("Dette er en normal funksjon");
SecondFunction ();

Ovennevnte utdrag viser hvordan en normal brukerdefinert funksjon ser ut i.e. den har få uttalelser (kode) og kaller en funksjon som er navngitt SecondFunction ().

Grunnleggende syntaks for rekursiv funksjon

La oss nå se på det undergitte utdraget for å forstå hvordan en rekursiv funksjon ser ut:

public void FirstFunction ()

System.ute.println ("Dette er en rekursiv funksjon");
FirstFunction ();

Tenk på den undergitte figuren for å forstå hvordan den ovennevnte rekursive funksjonen vil fungere:

Figuren ovenfor viser at funksjonen kaller seg kontinuerlig i.e. Et uendelig looping -scenario oppstår. Nå må du lure på om funksjonen ringer seg kontinuerlig, hvordan vil den stoppe? Vi vil! Vi må definere termineringskriteriene for å stoppe en slik funksjon på et tidspunkt.

Stans-/avslutningstilstand

For nå er det tydelig at det må være en tilstand som vil kontrollere strømmen av den rekursive funksjonen. I programmatiske termer blir tilstanden som stopper funksjonen for å ringe seg selv referert til som stanse tilstand eller Basisvakt.

Syntaksen til den rekursive funksjonen med stoppetilstanden vil se ut som dette:

public void FunctionName ()

funksjonsnavn ();
// termineringstilstand;

Stoppetilstanden kan være noen tilstand avhengig av de forskjellige omstendighetene.

Java rekursjonseksempler

Denne delen vil gi en detaljert forståelse av hvordan den rekursive funksjonen fungerer med basesaken i Java.

Eksempel

Den undergitte utdraget tar et nummer fra brukeren og finner faktorialet av dette tallet:

offentlig klasse FactorialClass
statisk int findFactorial (int num)
if (num == 0)
retur 1;

annet
retur (num * findFactorial (num - 1));


I ovennevnte kodebit brukes IF-elvetilstanden til å stoppe rekursjonen når “Num” blir lik “0”.

public static void main (String [] args)
Skannerskanning = ny skanner (system.i);
System.ute.println ("Angi et positivt tall:");
int -nummer = skanning.nextInt ();
hvis (nummer < 0)
System.ute.Println ("Du skrev inn et ugyldig nummer:");
annet
int resultat = findFactorial (tall);
System.ute.println ("Factorial:" + resultat);

I hovedmetoden henter vi nummeret fra brukeren, og bekrefter at enten nummeret er gyldig eller ikke, og hvis nummeret er gyldig, kan du ringe FindFactorial () metode. Hele koden vil generere følgende utgang:

Utgangen autentiserer den rekursive funksjonen fungerer som den skal, og den har beregnet faktorialen til 6 riktig.

Konklusjon

I Java, en prosess der en funksjon kaller seg igjen og igjen, kalles en rekursiv funksjon/metode mens hele prosessen er kjent som rekursjon. En base/stansende sak må defineres i de rekursive funksjonene for å stoppe rekursjonen på et eller annet tidspunkt, vil funksjonen aldri stoppe og kaller seg et ubegrenset antall ganger. Denne oppskrivningen utdyper hva som er rekursjon, forskjellen mellom den normale og rekursive funksjonen, og hvordan du kan lage rekursive funksjoner i Java.