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.