CodeGym /Blogue Java /Random-PT /Recursão Java
John Squirrels
Nível 41
San Francisco

Recursão Java

Publicado no grupo Random-PT

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.

Vantagens e desvantagens da recursão

Um código recursivo é simples de escrever, depurar e manter, o que economiza tempo. Mas por outro lado, a cada chamada a memória é consumida para as variáveis, e por isso podemos ficar sem memória.

Conclusão

Esperamos que você entenda a recursão Java e como implementá-la, bem como suas vantagens e desvantagens. Sinta-se à vontade para praticar e voltar sempre que precisar de mais ajuda. Feliz aprendizado!
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION