Funzioni ricorsive
Prendiamo come esempio la funzione fattoriale:
Il modo più facile di scriverla è di tradurre in java quello che c'è scritto nella definizione.
// definizione della funzione
public int fattoriale(int n){
int risposta;
if(n==1){
risposta = 1;
}else{
risposta = n * fattoriale (n-1);
}
return risposta;
}
Vediamo come è possibile utilizzare la funzione in un programma, qui sotto è
riportato un frammento di codice, la funzione eseguiCalcolo è
quella che viene richiamata alla pressione del pulsante
Simulazione fattoriale ricorsivo
avvia programma
pausa
Stack
codice
public void principale()int a;a = fattoriale(3);}public int fattoriale(int n){int r;if(n==1){r = 1;}else{r = fattoriale(n-1);r = n*r;}return r;}
Se in un'altra parte del programma dovesse servire di calcolare di nuovo il fattoriale
basterà chiamare di nuovo la funzione fattoriale() senza dover scrivere
due volte lo stesso pezzo di codice: il programma sarà più corto e in caso di correzioni
si dovrà correggere una sola cosa.