Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/03/2015, 12:28
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Dudas recursividad JAVA

Buenas,

Una función es recursiva si se llama a si misma.

Cita:
No entiendo la recursividad,
Es una duda muy genérica. En Google hay cientos de tutoriales y artículos que explican paso a paso la recursividad desde 0.

Cita:
tampoco entiendo por que el método actúa como un bucle
La función se llama a si misma con n-1. Esta a su vez se llama a si misma con n-1. Esta a su vez.... y así hasta que llega a 0 y hace return. En ese momento toda la pila de llamadas vuelve a retornar su valor hasta llegar a la original.

Le ejecución sería la siguiente:

1 - factorial (3) llama a factorial(2)
2 - factorial (2) llama a factorial(1)
3 - factorial (1) llama a factorial(0)
4 - factorial (0) devuelve 1
3 - factorial (1) devuelve 1 * 1
2 - factorial (2) devuelve 2 * 1 (1 * 1)
1 - factorial (3) devuelve 3 * 2 (2 * 1)
Resultado: 6


Lo mejor es que depures el código para ver como funciona.

Si no lo entiendes del todo tampoco te agobies. Las funciones recursivas permiten hacer algunas cosas de una forma más elegantes que con bucles, pero no siempre es más claro y sobre todo es mucho menos eficiente. Con el tiempo las encontrarás en muchos códigos, te acostumbrarás a ellas y las entenderás sin pensar mucho en ello...


Un saludo
__________________
If to err is human, then programmers are the most human of us