Java

Recursividade em Java

A recursividade em Java (recursão) é uma forma de programar no qual o método (função) chama a ele mesmo. Isto pode parecer estranho ou um erro de programação, mais a recursão é uma das técnicas mais interessantes em programação.

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 último 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.

Abaixo temos um esquema que ilustra o conceito de recursão e um exemplo de codificação que é frequentemente usado para explicar a recursividade:

fatorial
public int soma(int n) {

   //a soma de n com 0 é o próprio n 
   if(n == 0) {
		
	return n;
   }
	 return  n + soma(n - 1);
}	
    
//Se n = 4, então soma(4): 
     
/* return 4 + (4-1) = 7
   return 7 + soma(3-1) = 9
   return 9 + soma(2-1) = 10     
*/ 
        
public int fatorial(int n) {
	
   if(n == 0) { //fatorial de 0 é 1     
	return 1;  
 
	//senão...      
	return  n * fatorial(n - 1); 
   }  
    
//Se n = 4, então fatorial(4):
    
/* return 4 * (4-1) = 12
   return 12 * fatorial(3-1) = 24
   return 24 * fatorial(2-1) = 24     
*/ 
DOMINE O JAVA WEB ATRAVÉS DE AULAS PASSO A PASSO, DO BÁSICO AO AVANÇADO!

Domine as boas práticas com projetos práticos que vão te ajudar a desenvolver sistemas e se destacar no mercado de programação.

Clique na imagem abaixo e conheça mais detalhes do nosso curso:

Link do curso: https://go.hotmart.com/S90628636G?src=siteCB

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *