Introduo
Por vezes possvel e til definir um mtodo custa dele prprio. Nestes casos, diz-se que a definio recursiva. O mtodo continua a invocar-se a ele prprio at atingir um caso base, que pode ser resolvido sem quaisquer chamadas recursivas ao mtodo.
Ctia Vaz
Exemplo
Considere-se o caso do factorial de um nmero. Sabe-se que:
0!=1; n!=n*(n-1)!,
isto ,
factorial(0)=1; factorial(n)=n*factorial(n-1); Recursao.java
Ctia Vaz
Recurso infinita
Se a invocao recursiva dentro do mtodo no usar um parametro mais simples ou menor, nunca se conseguir atingir um caso base. Tal mtodo vai continuar a chamar-se at que a estrutura de dados que utilizada para guardar as chamadas recursivas (stack) se tornar demasiado grande para ser manipulada pelo computador, o que ir resultar numa stack overflow. Nestes casos, a invocao do mtodo leva a uma recurso infinita.
Ctia Vaz
Fibonacci.java
Ctia Vaz