I datalogi er en rekursiv metode opkald en metode, der kalder sig selv i løbet af processen for beregning. Programmeringssproget Java understøtter rekursion som en del af sin planlægning syntaks. Selv om det kan være svært for begyndere Java-programmører til at forstå , skrive rekursive metoder ofte tillader matematiske begreber at blive udtrykt klart i programmet. Af denne grund er det vigtigt for Java programmører til at forstå, hvordan man bruger rekursion og dens begrænsninger . Instruktioner
1
Undersøg, om beregningen proces , der skal udføres egner sig til rekursion eller ej. Det er vigtigt, at den beregningsmæssige proces i fremgangsmåden kan reduceres til en gentagen opkald til sig selv .
En af de populære rekursion beregningerne er processen med at bestemme fakultet af et tal . En fakultet af et tal N er resultatet af at multiplicere alle numre fra 1 op til N selv. For eksempel ved hjælp direkte multiplikation : Hej
Factorial (3) = 3 * 2 * 1 = 6 fotos
dog det samme resultat opnås , når de ses rekursivt : Hej
Factorial ( 3 ) = 3 * faktoriel (2) = 3 * 2 * factorial ( 1 ) = 3 * 2 * 1 = 6 fotos
Bemærk, at hver successiv trin refererer til den samme proces, men en enklere måde .
2
Erklær Java metode, der ville udføre den rekursive beregning. En metode, der normalt har mindst modifier, returtypen , metoden navne og det tilsvarende parameter listen . Metoden navn normalt begynder med et lille verbal ord. For eksempel definerer følgende linje en metode kaldet "kendsgerning ()" , som accepterer en hel række værdi af n , og returnerer dens factorial : Hej
int kendsgerning ( int n ) { }
< br > 3
sikre, at kroppen af rekursive metode , er den beregning udføres ved at foretage et opkald til sig selv . Sørg for, at der er en opsigelse tilstand af rekursive kald samt, ellers metode vil køre på ubestemt tid uden at stoppe. For eksempel beregner den følgende linje Factoria af et bestemt antal n ved successivt kalder sig at udføre den samme beregning med en enklere værdi af n -1.
Int kendsgerning ( int n ) {
< p > int resultat
if ( n == 1 ) tilbagevenden 1;
result = faktum (n- 1) * n ,
tilbagevenden resultat
< p> }
Når n- 1 er lig med 1, er værdien af 1 returneret. Dette er opsigelsen tilstand rekursive beregning.
4
Ring til rekursive metode til at teste det. For eksempel kalder følgende linje metoden "kendsgerning ()" , mens den passerer den en værdi på 3 for at udskrive på konsollen : Hej
System.out.println ( " fakultet af 3 er " + f.fact ( 3 )),
Sørg for, at meddelelsen ' fakultet af 3 er 6' er trykt på skærmen
.