Ricorsione in java | Spiegato

Ricorsione in java | Spiegato
L'approccio di ricorsione è molto adatto a quei problemi che possono essere suddivisi in problemi più piccoli, più semplici e ripetitivi. È una procedura in cui una funzione si chiama ripetutamente/ricorsivamente e deve esserci almeno una condizione di terminazione/arresto per fermare la ricorsione. Il metodo che si chiama è descritto come a funzione ricorsiva E l'intero processo è noto come ricorsione in Java.

Questa scrittura presenta una profonda comprensione dei seguenti concetti relativi alla ricorsione di Java:

  • Cos'è la ricorsione in Java
  • Sintassi di base della funzione di ricorsione
  • Come lavorare con la ricorsione Java

Quindi iniziamo!

Cos'è la ricorsione in Java

Di solito, assistiamo a una funzione che chiama qualche altra funzione o funzioni. Tuttavia, una funzione ricorsiva si chiama ripetutamente. I frammenti di seguito donati descrivono come un metodo normale differisce da un metodo ricorsivo.

Sintassi di base della funzione normale

public void firstfunction ()

Sistema.fuori.println ("Questa è una funzione normale");
SecondFunction ();

Lo snippet sopra mostra come appare una normale funzione definita dall'utente i.e. Ha poche dichiarazioni (codice) e chiama una funzione denominata Secondfunction ().

Sintassi di base della funzione ricorsiva

Ora diamo un'occhiata allo snippet di seguito per capire come appare una funzione ricorsiva:

public void firstfunction ()

Sistema.fuori.println ("Questa è una funzione ricorsiva");
FirstFunction ();

Prendi in considerazione la figura seguente per capire come funzionerà la funzione ricorsiva di cui sopra:

La figura sopra mostra che la funzione si chiama continuamente i.e. Si verifica uno scenario di loop infinito. Ora ti stai chiedendo se la funzione si sta chiamando continuamente, come si fermerà? BENE! Dobbiamo definire i criteri di terminazione per fermare una tale funzione ad un certo punto.

Condizione di fermentazione/terminazione

Per ora, è chiaro che ci deve essere una condizione che controllerà il flusso della funzione ricorsiva. In termini programmatici, la condizione che impedisce alla funzione di chiamare se stessa viene definita il Condizioni di sosta O caso base.

La sintassi della funzione ricorsiva con la condizione di arresto sarà simile a questa:

public void functionName ()

functionname ();
// Condizione di terminazione;

La condizione di arresto può essere qualsiasi condizione a seconda delle diverse circostanze.

Esempi di ricorsione Java

Questa sezione fornirà una comprensione dettagliata di come funziona la funzione ricorsiva con il caso di base in Java.

Esempio

Lo snippet di seguito prende un numero dall'utente e trova il fattoriale di quel numero:

Classe pubblica Classi di fabbrica
static int findFactoriale (int num)
if (num == 0)
Ritorno 1;

altro
return (num * findFactoriale (num - 1));


Nello snippet di codice sopra, la condizione IF-ELSE viene utilizzata per fermare la ricorsione quando "num" diventa uguale a "0".

public static void main (string [] args)
Scanner scan = nuovo scanner (sistema.In);
Sistema.fuori.println ("Immettere un numero positivo:");
int numero = scansione.NextInt ();
if (numero < 0)
Sistema.fuori.println ("Hai inserito un numero non valido:");
altro
int risultato = findFactoriale (numero);
Sistema.fuori.println ("fattoriale:" + risultato);

Nel metodo principale, stiamo recuperando il numero dall'utente, verificando che il numero è valido o meno, e se il numero è valido, chiama il findFactoriale () metodo. L'intero codice genererà il seguente output:

L'output autentica la funzione ricorsiva funziona correttamente e ha calcolato correttamente il fattoriale di 6.

Conclusione

In Java, un processo in cui una funzione si chiama ancora e ancora, è chiamato a funzione/metodo ricorsivo Mentre l'intero processo è noto come ricorsione. Un caso di base/arresto deve essere definito nelle funzioni ricorsive per fermare la ricorsione ad un certo punto, la funzione non si fermerà mai e si chiama un numero illimitato di volte. Questo articolo elabora ciò che è ricorsione, la differenza tra la funzione normale e ricorsiva e come creare funzioni ricorsive in Java.