A necessidade de repetir o código nunca pode ser subestimada na busca por soluções para alguns dos maiores problemas do mundo. O que você precisa saber é que, na programação, a repetição assume uma de duas formas - iteração ou recursão.

O objetivo aqui é apresentar a repetição no código e demonstrar como ela pode ser usada para aprimorar seus programas Java.

Os programas repetitivos podem ajudá-lo a resolver alguns dos problemas de programação mais difíceis. Aqui está o que você precisa saber para criar programas recursivos em Java.

Usando Iteração

A iteração usa uma estrutura de loop para repetir o código. Os três tipos de estruturas iterativas são loop de pré-teste (while), loop de pós-teste (do-while) e loop controlado por contador (para).

Essas estruturas iterativas operam repetindo um bloco de código enquanto uma condição específica permanece verdadeiro, mas assim que essa condição se torna falsa, o loop para e o programa retorna ao seu normal fluxo.

Por exemplo, poderíamos empregar uma das estruturas iterativas para resolver o problema da soma de todos os inteiros de 1 a n. Dependendo da estrutura iterativa que é usada, a solução assumirá uma forma específica, mas qualquer uma das as três estruturas iterativas podem fornecer uma solução para este problema usando o seguinte pseudo-código.

instagram viewer

Exemplo de pseudocódigo de iteração


COMEÇAR
DECLEARE soma, conta como inteiro
soma = 0
contagem = 1
REPETIR
Soma = soma + contagem
Contagem = contagem + 1
ATÉ contagem> n
FIM

O pseudocódigo acima tem duas variáveis, soma e contagem, que são inicializadas com 0 e 1, respectivamente. A variável "count" é inicializada com 1 porque o problema que estamos tentando resolver afirma que precisamos da soma de todos os inteiros de 1 a n.

A variável "n" será atribuída a um número aleatório do usuário e a variável "contagem" aumentará em um cada vez que um loop é executado, mas assim que o valor da variável "count" exceder o de "n", o loop irá Pare.

Por que usar a recursão?

Se examinarmos os fatos que envolvem a iteração e a recursão, descobriremos que várias coisas são verdadeiras.

  • Ambos os métodos envolvem repetição.
  • Ambos os métodos requerem uma condição de teste, que indicará quando parar.
  • Ambos os métodos podem teoricamente ser executados para sempre se uma condição de saída não for fornecida ou atendida.
  • Qualquer problema que pode ser resolvido usando iteração também pode ser resolvido usando recursão e vice-versa.

Então, por que escolheríamos um método em vez do outro? A resposta simples é eficiência. Com a recursão, um programador pode usar menos código para atingir o que é essencialmente o mesmo resultado. Menos código significa que há uma diminuição significativa na possibilidade de erros passarem despercebidos.

A recursão usa mais memória e é mais lenta do que a iteração, mas tem uma pilha embutida (estrutura de dados). Com a iteração, você teria que construir uma estrutura de dados (essencialmente reinventando a roda), deixando seu programa aberto a uma possibilidade maior de erros não detectados devido ao código extra.

Relacionado: Exceções Java: você está lidando com elas da maneira certa?

Como funciona a recursão

Recursão é o nome dado a um processo em que uma função se chama repetidamente até que uma condição específica seja atendida. Esse método repetitivo resolve problemas dividindo-os em versões menores e mais simples de si mesmos.

Cada função recursiva consiste em duas partes - caso base e caso geral.

Estrutura básica de um exemplo de função recursiva


Função(){
//caso base
//caso Geral
}

O caso base é a seção da função recursiva que resolve o problema. Assim, sempre que a função recursiva chega ao caso base, o programa sai da função recursiva e continua com seu fluxo natural.

O caso geral é a seção da função recursiva que é repetitiva. É aqui que a função chama a si mesma e onde a maior parte do trabalho é realizada.

Usando recursão em Java

Algumas linguagens de programação suportam apenas iteração, enquanto outras suportam apenas recursão. Felizmente, Java é uma das linguagens que oferece suporte a ambos os métodos repetitivos.

Em Java, a recursão é usada da mesma maneira que em qualquer outra linguagem que a suporte. A chave é sempre garantir que sua função recursiva tenha uma base e um caso geral, nessa ordem.

Vamos voltar ao nosso exemplo de soma inicial, o objetivo é encontrar a soma de todos os inteiros de 1 a n, onde n é um número inteiro fornecido pelo usuário.

Exemplo de recursão Java


// função recursiva
int Sum (int n) {
//caso base
if (n <= 1) {
return 1;
}
//caso Geral
senão{
retornar n + Soma (n-1);
}
}

A função recursiva acima leva um inteiro “n” e só termina sua execução quando o valor de n é menor ou igual a 1.

Se tivéssemos que passar o inteiro 5 para o programa acima, a variável "n" assumiria o valor 5. O valor de “n” seria então verificado no caso base, mas dado que 5 é maior que 1, “n” agora será passado para o caso geral.

Neste exemplo, o caso geral chamará a função recursiva quatro vezes. Na chamada de função final, o valor de "n" será 1, atendendo efetivamente aos requisitos do caso base, resultando no encerramento da função recursiva e no retorno de 15.

Se alterarmos o valor de “n” para 7, a função recursiva se chamará seis vezes e retornará 28 antes de encerrar sua execução.

Quer experimentar por si mesmo? Você pode executar o programa recursivo acima usando a seguinte linha de código na função principal do seu programa Java.


System.out.println (Soma (7));

O que você aprendeu

Se você leu todo este artigo, agora você tem uma compreensão básica dos dois métodos repetitivos que são usados ​​na programação. Agora você reconhece as semelhanças entre iteração e recursão e por que um desenvolvedor escolheria usar recursão em vez de iteração e como usar uma função recursiva em Java.

Crédito da imagem: ThisIsEngineering /Pexels

E-mail
O que é recursão e como usá-la?

Aprenda o básico da recursão, a ferramenta essencial, mas um tanto alucinante, para programadores.

Leia a seguir

Tópicos relacionados
  • Programação
  • Java
Sobre o autor
Kadeisha Kean (7 artigos publicados)

Kadeisha Kean é um desenvolvedor de software full-stack e redator técnico / tecnológico. Ela tem a habilidade distinta de simplificar alguns dos conceitos tecnológicos mais complexos; produzindo material que pode ser facilmente entendido por qualquer novato em tecnologia. Ela é apaixonada por escrever, desenvolver softwares interessantes e viajar pelo mundo (através de documentários).

Mais de Kadeisha Kean

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas técnicas, análises, e-books grátis e ofertas exclusivas!

Mais um passo…!

Confirme seu endereço de e-mail no e-mail que acabamos de enviar.

.