Recursión en Java | Explicado

Recursión en Java | Explicado
El enfoque de recursión es muy adecuado para aquellos problemas que se pueden dividir en problemas más pequeños, más simples y repetitivos. Es un procedimiento en el que una función se llama a sí misma repetida/recursiva y debe haber al menos una condición de terminación/detención para detener la recursión. El método que se llama a sí mismo se describe como un función recursiva y todo el proceso se conoce como recursión en Java.

Esta escritura presenta una comprensión profunda de los siguientes conceptos relacionados con la recursión de Java:

  • ¿Qué es la recursión en Java?
  • Sintaxis básica de la función de recursión
  • Cómo trabajar con la recursión de Java

Entonces empecemos!

¿Qué es la recursión en Java?

Por lo general, somos testigos de una función que llama a alguna otra función o funciones. Sin embargo, una función recursiva se llama a sí misma repetidamente. Los fragmentos dados a continuación retratan cómo un método normal difiere de un método recursivo.

Sintaxis básica de la función normal

Public Void FirstFunction ()

Sistema.afuera.println ("Esta es una función normal");
Segundafunction ();

El fragmento anterior muestra cómo se ve una función normal definida por el usuario i.mi. tiene pocas declaraciones (código) y llama a una función nombrada Secondfunction ().

Sintaxis básica de la función recursiva

Ahora echemos un vistazo al fragmento dado a continuación para comprender cómo se ve una función recursiva:

Public Void FirstFunction ()

Sistema.afuera.println ("Esta es una función recursiva");
FirstFunction ();

Considere la figura dada a continuación para comprender cómo funcionará la función recursiva anterior:

La figura anterior muestra que la función se llama continuamente yo.mi. Se produce un escenario de bucle infinito. Ahora debe preguntarse si la función se hace llamar continuamente, ¿cómo se detendrá?? Bien! Tenemos que definir los criterios de terminación para detener dicha función en algún momento.

Condición de detención/terminación

Por ahora, está claro que debe haber una condición que controle el flujo de la función recursiva. En términos programáticos, la condición que detiene la función para llamar a sí misma se conoce como la condición de detención o caso base.

La sintaxis de la función recursiva con la condición de detención se verá algo así:

public void functionName ()

nombre de la función();
// condición de terminación;

La condición de detención puede ser cualquier condición dependiendo de las diferentes circunstancias.

Ejemplos de recursión de Java

Esta sección proporcionará una comprensión detallada de cómo funciona la función recursiva con el caso base en Java.

Ejemplo

El fragmento dado a continuación toma un número del usuario y encuentra el factorial de ese número:

clase pública FactorialClass
static int findFactorial (int num)
if (num == 0)
regresar 1;

demás
return (num * findFactorial (num - 1));


En el fragmento de código anterior, la condición if-else se usa para detener la recursión cuando "num" se vuelve igual a "0".

public static void main (string [] args)
Scanner Scan = New Scanner (sistema.en);
Sistema.afuera.println ("Ingrese un número positivo:");
int número = escaneo.nextInt ();
if (número < 0)
Sistema.afuera.println ("Ingresó un número no válido:");
demás
int resultado = findFactorial (número);
Sistema.afuera.println ("factorial:" + resultado);

En el método principal, estamos obteniendo el número del usuario, verificando que el número es válido o no, y si el número es válido, llame al findFactorial () método. Todo el código generará la siguiente salida:

La salida autentica la función recursiva funciona correctamente y ha calculado el factorial de 6 correctamente.

Conclusión

En Java, un proceso en el que una función se llama a sí misma una y otra vez, se llama función/método recursivo mientras que todo el proceso se conoce como recursión. Se debe definir una base de base/detención en las funciones recursivas para detener la recursión en otro momento, de lo contrario, la función nunca se detendrá y se llama a sí mismo un número ilimitado de veces. Este artículo elabora lo que es la recursión, la diferencia entre la función normal y recursiva, y cómo crear funciones recursivas en Java.