Desenvolvimento - Java

Recursividade em JAVA

No meu artigo, explico de maneira informal e objetiva, como funciona a recursividade, principalmente para iniciantes na linguagem, que geralmente possuem dificuldade.

por Ricardo Alves



A recursividade geralmente é um termo que assusta as pessoas que estão começando a programar, realmente se não é bem explicado e bem exemplificado, o entendimento acaba se tornando mais difícil. Neste artigo explicarei da melhor forma possível desde como funciona o conceito da recursividade, até uma aplicação da mesma na linguagem JAVA.

A recursividade trabalha de forma similar a um laço de repetição, na verdade tudo que fazemos em laço, pode ser feito em recursividade. A recursividade é nada mais nada menos do que uma função dentro da outra e ela deve ser pensada como uma pilha (estrutura de dados onde o ultimo a entrar, deve ser o primeiro a sair). A estrutura dela consiste em descer até a base fazendo os cálculos ou rotinas de cada instrução, e então da base até o topo da pilha são empilhados os resultados de cada instrução e no final o topo contém o resultado que é retornado. Na figura a seguir, temos um exemplo que é frequentemente usado para explicar a recursividade, podemos encontrar em diversos livros didáticos, porque é um dos mais fáceis para se entender, estou falando do fatorial.

Ex. desenvolver um método recursivo para descobrir o fatorial de um número “N”. Suponhamos que o N seja igual a 4.

Obs: O “fatorial(4)” só pode ser descoberto depois que o “fatorial(3)” for descoberto, que por sua vez só poderá ser descoberto depois do fatorial(2) e assim por diante. Por isso vai do topo até a base, e depois vai empilhando os resultados da base até o topo.

Agora uma ilustração com os valores para fixar o conceito:

          O conceito de recursividade como podemos ver anteriormente não é tão difícil, é claro que na hora da programação é sempre recomendável atenção, organização e fazer o tão “chato”, mas eficiente teste de mesa, ou seja, fazer o máximo para dar certo, pois a hora de errar é quando estiver treinando, fazendo exercícios e não deixar para errar quando estiver em um mercado de trabalho, onde um projeto pode ter mais de 10000 linhas.

          Agora vamos deixar de “Blábláblá”, e vamos ao que interessa, a seguir implementaremos o exemplo do fatorial no JAVA.

Crie uma classe como a seguir:

          Essa é a função recursiva do fatorial em JAVA. Agora vamos implementar um método principal para testar esta função, para facilitar coloque esse método dentro da classe que já foi criada. Como a seguir:

          Com isso eu encerro este artigo, espero que tenham gostado e entendido a tão temida recursiva. Qualquer duvida podem entrar em contato.

Em breve postarei mais artigos sobre JAVA.

Conclusão

          Ao final deste artigo podemos ver que a recursividade não é aquele “bicho papão” que muitos pensam, é tudo questão de atenção e organização. Se você tiver paciência, atenção e organização vai se dar muito bem com a recursividade, não esquecendo é claro de fazer aquele bom e velho teste de mesa (pelo menos no começo), e é importante lembrar também que a recursividade trabalha com o conceito de pilha e pode até substituir laços de repetição, Por que não!?

Ricardo Alves

Ricardo Alves - Estudante de análise e desenvolvimento de sistemas na Faculdade de tecnologia (Fatec) , Programador em JAVA. Freelancer desde 2009.