Neste tutorial, você aprenderá sobre a função recursiva Java, suas vantagens e desvantagens.
Em Java, um método que chama a si mesmo é conhecido como método recursivo. E, esse processo é conhecido como recursão.
Um exemplo de mundo físico seria colocar dois espelhos paralelos voltados um para o outro. Qualquer objeto entre eles seria refletido recursivamente.
Como funciona a recursão?

No exemplo acima, chamamos o recurse()
método de dentro do main
método. (chamada de método normal). E, dentro do método recurse (), estamos novamente chamando o mesmo método recurse. Esta é uma chamada recursiva.
Para interromper a chamada recursiva, precisamos fornecer algumas condições dentro do método. Caso contrário, o método será chamado infinitamente.
Portanto, usamos a instrução if… else (ou abordagem semelhante) para encerrar a chamada recursiva dentro do método.
Exemplo: fatorial de um número usando recursão
class Factorial ( static int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) public static void main(String() args) ( int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); ) )
Produto :
4 fatorial = 24
No exemplo acima, temos um método chamado factorial()
. O factorial()
é chamado a partir do main()
método. com a variável numérica passada como argumento.
Aqui, observe a declaração,
return n * factorial(n-1);
O factorial()
método está chamando a si mesmo. Inicialmente, o valor de n é 4 dentro factorial()
. Durante a próxima chamada recursiva, 3 é passado para o factorial()
método. Este processo continua até que n seja igual a 0.
Quando n é igual a 0, a if
instrução retorna falso, portanto, 1 é retornado. Por fim, o resultado acumulado é passado para o main()
método.
Programa de Trabalho Fatorial
A imagem abaixo lhe dará uma idéia melhor de como o programa fatorial é executado usando recursão.

Vantagens e desvantagens da recursão
Quando uma chamada recursiva é feita, novos locais de armazenamento para variáveis são alocados na pilha. À medida que cada chamada recursiva retorna, as variáveis e parâmetros antigos são removidos da pilha. Portanto, a recursão geralmente usa mais memória e é geralmente lenta.
Por outro lado, uma solução recursiva é muito mais simples e leva menos tempo para escrever, depurar e manter.
Leitura recomendada: Quais são as vantagens e desvantagens da recursão?