AD

¿Ya dominas lo básico? Un curso estructurado de Java es la vía rápida para dar el salto.

Ver cursos de Java en Udemy

Enlace de afiliado. No te cuesta nada extra.

Lecciones de Java
Lección 12 / 68

Funciones recursivas

En esta lección escribirás un método que se llama a sí mismo.

Hacen falta dos cosas: un caso base que detenga la recursión, y una llamada a sí mismo con un problema más pequeño.

El código de ejemplo calcula un factorial deteniéndose al llegar a 1.

Sin caso base, el programa termina con StackOverflowError. Cada llamada ocupa espacio en la pila, y esa memoria es limitada: en Java se agota alrededor de las diez mil llamadas, mucho antes de lo que la gente supone.

Java no optimiza la llamada final, así que una recursión profunda no se puede convertir en bucle automáticamente como en algunos lenguajes funcionales. Por eso aquí la recursión se reserva para estructuras recursivas —árboles, JSON anidado, sistemas de archivos— y para el resto se prefiere un bucle.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Java directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)