La necesidad de repetir el código nunca puede subestimarse en la búsqueda de soluciones a algunos de los mayores problemas del mundo. Lo que necesita saber es que en programación, la repetición toma una de dos formas: iteración o recursión.

El objetivo aquí es presentarle la repetición en el código y demostrar cómo se puede utilizar para mejorar sus programas Java.

Los programas repetitivos pueden ayudarlo a resolver algunos de los problemas de programación más difíciles. Esto es lo que necesita saber para crear programas recursivos en Java.

Usando iteración

La iteración usa una estructura de bucle para repetir el código. Los tres tipos de estructuras iterativas son bucle de prueba previa (while), bucle de prueba posterior (do-while) y bucle controlado por contador (para).

Estas estructuras iterativas operan repitiendo un bloque de código mientras permanece una condición específica verdadero, pero tan pronto como esa condición se vuelve falsa, el ciclo se detiene y el programa vuelve a su estado normal flujo.

instagram viewer

Por ejemplo, podríamos emplear una de las estructuras iterativas para resolver el problema de la suma de todos los números enteros de 1 a n. Dependiendo de la estructura iterativa que se utilice, la solución tomará una forma específica, pero cualquiera de las tres estructuras iterativas pueden proporcionar una solución para este problema utilizando las siguientes pseudocódigo.

Ejemplo de pseudocódigo de iteración


COMIENZO
DECLEARE suma, cuenta como entero
suma = 0
cuenta = 1
REPETIR
Suma = suma + recuento
Cuenta = cuenta + 1
HASTA contar> n
FINAL

El pseudocódigo anterior tiene dos variables, suma y recuento, que se inicializan en 0 y 1 respectivamente. La variable "count" se inicializa a 1 porque el problema que estamos tratando de resolver establece que necesitamos la suma de todos los números enteros de 1 a n.

A la variable "n" se le asignará un número aleatorio del usuario y la variable "cuenta" aumentará en uno cada uno. vez que se realiza un bucle, pero tan pronto como el valor de la variable "count" excede el de "n", el bucle detener.

¿Por qué utilizar la recursividad?

Si tuviéramos que examinar los hechos que rodean la iteración y la recursividad, encontraremos que varias cosas son ciertas.

  • Ambos métodos implican repetición.
  • Ambos métodos requieren una condición de prueba, que indicará cuándo detenerse.
  • En teoría, ambos métodos pueden ejecutarse para siempre si no se da o no se cumple una condición de salida.
  • Cualquier problema que se pueda resolver mediante iteración también se puede resolver mediante recursividad y viceversa.

Entonces, ¿por qué querríamos elegir un método sobre el otro? La respuesta simple es la eficiencia. Con la recursividad, un programador puede usar menos código para lograr lo que es esencialmente el mismo resultado. Menos código significa que hay una disminución significativa en la posibilidad de que los errores pasen desapercibidos.

La recursividad usa más memoria y es más lenta que la iteración, pero tiene una pila incorporada (estructura de datos). Con la iteración, tendría que construir una estructura de datos (esencialmente reinventar la rueda), dejando su programa abierto a una mayor posibilidad de errores no detectados debido al código adicional.

Relacionados: Excepciones de Java: ¿las está manejando correctamente?

¿Cómo funciona la recursividad?

La recursividad es el nombre que se le da a un proceso en el que una función se llama a sí misma repetidamente hasta que se cumple una condición específica. Este método repetitivo resuelve problemas dividiéndolos en versiones más pequeñas y simples de sí mismos.

Cada función recursiva consta de dos partes: caso base y caso general.

Estructura básica de un ejemplo de función recursiva


Función(){
//caso base
//caso general
}

El caso base es la sección de la función recursiva que resuelve el problema. Entonces, siempre que la función recursiva llega al caso base, el programa sale de la función recursiva y continúa con su flujo natural.

El caso general es la sección de la función recursiva que es repetitiva. Aquí es donde la función se llama a sí misma y donde se realiza la mayor parte del trabajo.

Usando la recursividad en Java

Algunos lenguajes de programación solo admiten iteración, mientras que otros solo admiten recursividad. Afortunadamente, Java es uno de los lenguajes que admite ambos métodos repetitivos.

En Java, la recursividad se usa de la misma manera que se usa en cualquier otro lenguaje que la soporte. La clave es asegurarse siempre de que su función recursiva tenga tanto un caso básico como un caso general, en ese orden.

Volvamos a nuestro ejemplo de suma inicial, el objetivo es encontrar la suma de todos los números enteros de 1 an, donde n es un número entero proporcionado por el usuario.

Ejemplo de recursividad de Java


//función recursiva
int Sum (int n) {
//caso base
si (n <= 1) {
return 1;
}
//caso general
demás{
return n + Sum (n-1);
}
}

La función recursiva anterior toma un número entero "n" y solo termina su ejecución cuando el valor de n es menor o igual a 1.

Si tuviéramos que pasar el entero 5 al programa anterior, la variable "n" asumiría el valor de 5. El valor de “n” se verificaría entonces en el caso base, pero dado que 5 es mayor que 1, “n” ahora se pasará al caso general.

En este ejemplo, el caso general llamará a la función recursiva cuatro veces. En la última llamada a la función, el valor de "n" será 1, cumpliendo efectivamente los requisitos del caso base, lo que da como resultado la terminación de la función recursiva y devuelve 15.

Si cambiamos el valor de “n” a 7, la función recursiva se llamará a sí misma seis veces y devolverá 28 antes de terminar su ejecución.

¿Quieres intentarlo tu mismo? Puede ejecutar el programa recursivo anterior utilizando la siguiente línea de código en la función principal de su programa Java.


System.out.println (Sum (7));

Que has aprendido

Si ha completado todo este artículo, ahora tiene una comprensión básica de los dos métodos repetitivos que se utilizan en la programación. Ahora reconoce las similitudes entre la iteración y la recursividad y por qué un desarrollador elegiría usar la recursión sobre la iteración y cómo usar una función recursiva en Java.

Crédito de la imagen: ThisIsEngineering /Pexels

Correo electrónico
¿Qué es la recursividad y cómo se usa?

Aprenda los conceptos básicos de la recursividad, la herramienta esencial pero un poco alucinante para los programadores.

Leer siguiente

Temas relacionados
  • Programación
  • Java
Sobre el Autor
Kadeisha Kean (7 Artículos publicados)

Kadeisha Kean es desarrolladora de software Full-Stack y redactora técnica / tecnológica. Tiene la habilidad distintiva de simplificar algunos de los conceptos tecnológicos más complejos; produciendo material que puede ser fácilmente entendido por cualquier novato en tecnología. Le apasiona escribir, desarrollar software interesante y viajar por el mundo (a través de documentales).

Más de Kadeisha Kean

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Un paso más…!

Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.

.