I datavetenskap , är en rekursiv metod anropa en metod som kallar sig under processen för beräkningen . Programmeringsspråket Java stöder rekursion som en del av sin planering syntax . Även om det kan vara svårt för nybörjare Java programmerare att förstå , skriva rekursiva metoder ofta gör matematiska begrepp skall uttryckas tydligt i programmet . Av denna anledning är det viktigt för Java programmerare att förstå hur man använder rekursion och dess begränsningar . Instruktioner
1
Bestäm om beräkning som ska utföras lämpar sig för rekursion eller inte . Det är viktigt att den beräkningsmässiga processen i metoden kan reduceras till en upprepad samtal till sig själv.
En av de populära rekursion beräkningar är processen att bestämma ett tals fakultet . En fakulteten av ett tal n är resultatet av att multiplicera alla tal från 1 upp till n själv . Exempelvis med användning av direkt multiplikation :
Factorial ( 3 ) = 3 * 2 * 1 = 6
emellertid samma resultat erhålls när de ses rekursivt :
Factorial ( 3 ) = 3 * faktoriell ( 2 ) = 3 * 2 * faktoriell ( 1 ) = 3 * 2 * 1 = 6
Observera att varje successivt steg refererar till samma process, men på ett enklare sätt .
Sida 2
Deklarera Java metod som skulle utföra den rekursiva beräkningen . En metod har vanligen minst modifier , returtyp , metoden namnen och motsvarande parameter listan . Metoden Namnet börjar normalt med ett gement verbala ord . Till exempel definierar följande rad en metod som kallas " faktum ( ) " som accepterar ett heltal värde på n och returnerar dess faktoriell :
faktum
int ( int n ) { }
3
Säkerställ att i kroppen av den rekursiva metoden , är beräkningen utförs genom att ringa ett samtal till sig själv . Se till att det finns en avslutande tillstånd av det rekursiva anropet liksom, annars kommer metoden visas på obestämd tid utan att stanna. Exempelvis beräknar följande rad i factoria av ett visst antal n genom att successivt kallar sig att utföra samma beräkning med ett enklare värde på n- 1 .
Int faktum ( int n ) {
int resultat ;
if ( n == 1 ) return 1 ;
resultat = faktum ( n- 1 ) * n;
retur resultat ;
}
När n - 1 är lika med 1 , är värdet 1 returneras . Detta är den avslutande tillstånd rekursiva beräkningen .
4
Ring iterativ metod för att testa den . Till exempel anropar följande rad metoden " faktum ( ) " medan passerar det ett värde av 3 för att skriva ut på konsolen :
System.out.println ( " Fakultet av 3 är " + f.fact ( 3 ) ) ;
Kontrollera att meddelandet " Fakultet av 3 är 6 " är tryckt på skärmen
.