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.

Fonte: http://www.linhadecodigo.com.br