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.