Cos'è la ricorsione Java?
Lo scenario in cui una funzione o un metodo richiama se stesso è noto come ricorsione e tale funzione o metodo è noto come funzione ricorsiva o metodo ricorsivo. Questo approccio viene sempre utilizzato per suddividere i problemi complessi in uno semplice e più facile da scrivere. Un semplice esempio è posizionare due specchi uno di fronte all'altro e inizieranno a riflettersi a vicenda in modo ricorsivo, cosa che puoi vedere facilmente.Ricorsione indiretta
L'esempio precedente rappresenta la ricorsione indiretta , ovvero la funzione uno che chiama la funzione due e la funzione due che chiama la funzione uno.Ricorsione diretta
Quando un metodo richiama se stesso più e più volte, viene chiamato ricorsione diretta .Condizione di arresto
Ora penserai che se un metodo chiama se stesso ancora e ancora, sicuramente dovrà affrontare un errore di Stack Overflow . Sì, hai ragione, come il loop infinito può andare in una ricorsione infinita. Dobbiamo fornire una condizione di base o una condizione di terminazione per fermare questa ricorsione infinita, detta condizione di halting, e questa condizione è sempre fornita all'interno del metodo ricorsivo, che vedremo in dettaglio nell'esempio seguente.Esempio di ricorsione
class Recursion {
static int factorial( int n ) {
// base condition or termination condition
if (n != 0)
// here we are calling the recursive method
return n * factorial(n-1);
else
return 1;
}
public static void main(String[] args) {
// initializing the variables
int number = 5, result;
result = factorial(number);
System.out.println(number + " factorial = " + result);
// changing the value from 5 to 10
number = 10;
result = factorial(number); // recursive function call
System.out.println(number + " factorial = " + result);
}
}
Esempio di output
5 fattoriale = 120 10 fattoriale = 3628800
In questo esempio di metodo ricorsivo abbiamo una funzione fattoriale chiamata dal metodo principale. Abbiamo passato un valore di 5 per vedere qual è il suo fattoriale, che è 120. Questa funzione fattoriale richiama se stessa passando il valore di 4, che di nuovo chiama e passa il valore di 3, e così via, finché non viene raggiunta la condizione di arresto. incontrato, che è il valore 0. Lo stesso accade quando abbiamo cambiato il valore da 5 a 10.
GO TO FULL VERSION