O que é recursão Java?
O cenário no qual uma função ou método chama a si mesmo é conhecido como recursão e tal função ou método é conhecido como função recursiva ou método recursivo. Essa abordagem é sempre usada para dividir problemas complexos em problemas simples e mais fáceis de escrever. Um exemplo simples é colocar dois espelhos um na frente do outro e eles começarão a refletir um ao outro recursivamente, o que você pode ver facilmente.Recursão indireta
O exemplo acima representa a recursão indireta , ou seja, a função um chamando a função dois e a função dois chamando a função um.Recursão Direta
Quando um método chama a si mesmo repetidamente, ele é chamado de recursão direta .Condição de parada
Agora você estará pensando se um método está se chamando repetidamente, então com certeza enfrentará um erro Stack Overflow . Sim, você está certo, como um loop infinito, ele pode entrar em uma recursão infinita. Devemos fornecer uma condição base ou uma condição de terminação para interromper essa recursão infinita, que é conhecida como condição de parada, e essa condição é sempre fornecida dentro do método recursivo, que veremos em detalhes no exemplo abaixo.Exemplo de recursão
class Recursion {
static int factorial( int n ) {
// base condition or termination condition
if (n != 0)
// here we are calling the recursive method
return n * factorial(n-1);
else
return 1;
}
public static void main(String[] args) {
// initializing the variables
int number = 5, result;
result = factorial(number);
System.out.println(number + " factorial = " + result);
// changing the value from 5 to 10
number = 10;
result = factorial(number); // recursive function call
System.out.println(number + " factorial = " + result);
}
}
Exemplo de saída
5 fatorial = 120 10 fatorial = 3628800
Neste exemplo de método recursivo, temos uma função fatorial chamada a partir do método principal. Passamos o valor 5 para ver qual é o seu fatorial, que é 120. Essa função fatorial está se chamando novamente passando o valor 4, que novamente chama e passa o valor 3, e assim por diante, até que a condição de parada seja met, que é o valor 0. O mesmo acontece quando alteramos o valor de 5 para 10.
GO TO FULL VERSION