I informatikk , er en rekursiv metode kaller en metode som kaller seg under prosessen med beregning. Programmeringsspråket Java støtter rekursjon som en del av sin programmering syntaks. Mens det kan være vanskelig for nybegynnere Java-programmerere å forstå, skrive rekursive metoder gjør ofte matematiske begreper som skal uttrykkes tydelig i programmet . Av denne grunn er det viktig for Java- programmerere til å forstå hvordan du bruker rekursjon og sine begrensninger. Instruksjoner
en
Finn ut om beregning prosessen som skal utføres gir seg til rekursjon eller ikke. Det er viktig at den beregningsmessige prosess i fremgangsmåten kan bli redusert til et gjentatt anrop til seg selv.
En av de populære rekursjon beregningene er prosessen med å bestemme fakultet til et nummer . En fakultetet til et tall N er resultatet av å multiplisere alle tallene fra 1 til N selv. For eksempel bruker direkte multiplikasjon : en
Fakultet ( 3 ) = 3 * 2 * 1 = 6
er imidlertid det samme resultatet oppnås når sett rekursivt : en
Fakultet ( 3 ) = 3 * fakultet ( 2 ) = 3 * 2 * fakultet ( 1 ) = 3 * 2 * 1 = 6
merke til at hver påfølgende trinnet refererer til den samme prosessen , men i enklere termer .
2
Erklærer Java metode som ville utføre den rekursive beregning. En fremgangsmåte har vanligvis i det minste den modifikator returtypen , metoden navn og den tilsvarende parameterliste . Metodenavnet begynner vanligvis med inn en liten verbal ord . For eksempel definerer følgende linje en metode som kalles " faktisk ( )" som godtar en hel rekke verdien av n og returnerer sitt fakultet : en
int faktum ( int n ) { }
3
sikre at det i legemet av den rekursive metoden blir beregningen utføres ved å foreta et anrop til seg selv. Sørg for at det er en avslutning tilstanden til rekursive kall i tillegg , ellers metoden vil kjøre på ubestemt tid uten å stoppe. For eksempel beregner følgende linje Factoria av et bestemt nummer n ved suksessivt å kalle seg selv for å utføre det samme regnestykket med en enklere verdi av n -1.
Int faktum ( int n ) {
< p > int resultat ;
if ( n == 1 ) return 1;
resultat = faktum ( n - 1 ) * n;
retur resultat ;
< p> }
Når n - 1 er lik 1 , er verdien av en returnert . Dette er avslutningen tilstanden til rekursive beregning.
4
Ring rekursiv metode for å teste den. For eksempel kaller følgende linje metoden " faktisk ( ) " mens passerer den en verdi av tre til å skrive ut på konsollen : en
System.out.println ( " Faktorielle av tre er " + f.fact ( 3 ));
Kontroller at meldingen ' Faktorielle av tre er 6 ' er trykt på skjermen
.