Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Recursão em Java: Entendimento, Exemplos e Trade-offs

Recursão em Java

Este guia explica métodos recursivos em Java, percorre um exemplo clássico de fatorial e avalia os prós e contras do uso de recursão.

Em Java, um método que chama a si mesmo é chamado de método recursivo, e a técnica geral é conhecida como recursão. Uma ilustração simples do mundo real são dois espelhos face a face: cada reflexo é outra imagem de espelho, repetindo até a luz ser absorvida.


Como a Recursão Funciona

Recursão em Java: Entendimento, Exemplos e Trade-offs

Na ilustração acima, o método recursivo() é invocado a partir de main() — uma chamada normal. Dentro de recursivo(), o mesmo método chama a si mesmo novamente, criando uma chamada recursiva. Para prevenir loop infinito, cada chamada recursiva deve incluir uma condição de término, tipicamente implementada com uma instrução if…else.


Exemplo: Fatorial de um Número Usando Recursão

class Fatorial { static int fatorial(int n) { if (n != 0) // condição de término return n * fatorial(n - 1); // chamada recursiva else return 1; } public static void main(String[] args) { int numero = 4, resultado; resultado = fatorial(numero); System.out.println(numero + " fatorial = " + resultado); } }

Saída:

4 fatorial = 24

O método fatorial() é chamado de main() com o argumento numero. Dentro de fatorial(), a linha

return n * fatorial(n-1);
faz o método invocar a si mesmo com valor decrementado. Começando com n = 4, as chamadas progridem: 4 → 3 → 2 → 1 → 0. Quando n chega a 0, a condição if falha, retornando 1. O produto acumulado então propaga de volta pela pilha de chamadas até main().


Como o Programa de Fatorial Executa

A imagem abaixo ilustra a evolução da pilha de chamadas durante a execução.

Recursão em Java: Entendimento, Exemplos e Trade-offs

Vantagens e Desvantagens da Recursão

No geral, a recursão oferece soluções elegantes ao custo de maior uso de memória e potencial sobrecarga de performance. Para muitos casos de uso, especialmente aqueles com profundidade limitada, o trade-off vale a pena.

Leitura Recomendada: Quais são as vantagens e desvantagens da recursão?

Java

  1. Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
  2. Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
  3. Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
  4. Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos
  5. Tipos de Anotação em Java: Guia Completo de Predefinidas, Customizadas e Meta-Anotações
  6. Método Java String length(): Como Obter o Tamanho de uma String (Exemplo)
  7. Entendendo Java String.charAt(): Sintaxe, Tipo de Retorno, Exceções e Exemplo Prático
  8. Dominando Java String.endsWith(): Como Verificar Sufixos de String com Exemplos
  9. Dominando Substituição de Strings em Java: replace(), replaceAll() e replaceFirst() Explicados
  10. Inverter String em Java Usando Recursão – Guia Passo a Passo