SlideShare a Scribd company logo
1 of 19
Download to read offline
Java Básico
Recursividade
#35
Fórum para dúvidas + certificado do curso.
Cadastro em:
•Métodos Recursivos
•Exemplo Calcular Fatorial
Agenda
O que é recursividade
http://vidadeprogramador.com.br/2012/06/04/faz-uma-tirinha/
Função/Método recursivo
•Método que chama ele mesmo
•Precisa de um ponto de parada
Fatorial de um número
•5! = 5 * 4 * 3 * 2 * 1 = 120
Método não recursivo
public int calculaFatorial(int num){
int total = 1;
for (int i=num; i>1; i--){
total *= i;
}
return total;
}
Método recursivo
public int fatorial(int num){
if(num == 0){
return 1;
}
return num * fatorial(num-1);
}
Método recursivo
public int fatorial(int num){
if(num == 0){
return 1;
}
return num * fatorial(num-1);
}
Chama ele mesmo
Método recursivo
public int fatorial(int num){
if(num == 0){
return 1;
}
return num * fatorial(num-1);
}
Ponto de parada
Chama ele mesmo
fatorial(5)
fatorial(4)
fatorial(3)
fatorial(2)
fatorial(1)
fatorial(0) fatorial(0) = 1
fatorial(1) = 1 * fatorial(0)
fatorial(2) = 2 * fatorial(1)
fatorial(3) = 3 * fatorial(2)
fatorial(4) = 4 * fatorial(3)
fatorial(5) = 4 * fatorial(4)
Leitura = de baixo para cima
Hands On!
Lição
de casa
http://www.slideshare.net/loianeg/curso-
java-basico-exercicios-aula-35
Lista de exercícios aula 35
https://github.com/loiane/curso-java-basico
Código Fonte:
Não conhece Git/Github?
http://www.loiane.com/2013/11/
screencast-git-e-github-para-iniciantes
http://loiane.training
Curso Completo
disponível em
http://loiane.com
facebook.com/loianegroner
@loiane
https://github.com/loiane
youtube.com/user/Loianeg
Obrigada!
http://loiane.com

More Related Content

What's hot

Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
Pacc UAB
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
Regis Magalhães
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
Pacc UAB
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
Ludimila Monjardim Casagrande
 

What's hot (20)

[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggers
 
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em JavaPOO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
 
[Curso Java Basico] Exercicios Aula 35
[Curso Java Basico] Exercicios Aula 35[Curso Java Basico] Exercicios Aula 35
[Curso Java Basico] Exercicios Aula 35
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
 
[Curso Java Basico] Exercicios Aulas 44 a 46
[Curso Java Basico] Exercicios Aulas 44 a 46[Curso Java Basico] Exercicios Aulas 44 a 46
[Curso Java Basico] Exercicios Aulas 44 a 46
 

Viewers also liked

Viewers also liked (20)

[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces
[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces
[Curso Java Basico - Orientacao a Objetos] Aula 44: Interfaces
 
[Curso Java Basico - Orientacao a Objetos] Aula 36: Relacionamento tem um
[Curso Java Basico - Orientacao a Objetos] Aula 36: Relacionamento tem um[Curso Java Basico - Orientacao a Objetos] Aula 36: Relacionamento tem um
[Curso Java Basico - Orientacao a Objetos] Aula 36: Relacionamento tem um
 
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
 
[Curso Java Basico - Orientacao a Objetos] Aula 25: Classes e metodos simples
[Curso Java Basico - Orientacao a Objetos] Aula 25: Classes e metodos simples[Curso Java Basico - Orientacao a Objetos] Aula 25: Classes e metodos simples
[Curso Java Basico - Orientacao a Objetos] Aula 25: Classes e metodos simples
 
[Curso Java Basico - Orientacao a Objetos] Aula 32: Encapsulamento: métodos g...
[Curso Java Basico - Orientacao a Objetos] Aula 32: Encapsulamento: métodos g...[Curso Java Basico - Orientacao a Objetos] Aula 32: Encapsulamento: métodos g...
[Curso Java Basico - Orientacao a Objetos] Aula 32: Encapsulamento: métodos g...
 
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
 
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
 
[Curso Java Basico - Orientacao a Objetos] Aula 46: Interface e heranca
[Curso Java Basico - Orientacao a Objetos] Aula 46: Interface e heranca [Curso Java Basico - Orientacao a Objetos] Aula 46: Interface e heranca
[Curso Java Basico - Orientacao a Objetos] Aula 46: Interface e heranca
 
[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas
[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas
[Curso Java Basico - Orientacao a Objetos] Aula 41: Heranca: classes abstratas
 
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
 
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
 
[Curso Java Basico - Orientacao a Objetos] Aula 29: Construtores e Codigo de ...
[Curso Java Basico - Orientacao a Objetos] Aula 29: Construtores e Codigo de ...[Curso Java Basico - Orientacao a Objetos] Aula 29: Construtores e Codigo de ...
[Curso Java Basico - Orientacao a Objetos] Aula 29: Construtores e Codigo de ...
 
[Curso Java Basico] Aula 22: Como debugar no Eclipse
[Curso Java Basico] Aula 22: Como debugar no Eclipse[Curso Java Basico] Aula 22: Como debugar no Eclipse
[Curso Java Basico] Aula 22: Como debugar no Eclipse
 
[Curso Java Basico - Orientacao a Objetos] Aula 37: Heranca
[Curso Java Basico - Orientacao a Objetos] Aula 37: Heranca[Curso Java Basico - Orientacao a Objetos] Aula 37: Heranca
[Curso Java Basico - Orientacao a Objetos] Aula 37: Heranca
 
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
 
[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...
[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...
[Curso Java Basico - Orientacao a Objetos] Aula 40: Heranca e Polimorfismo: s...
 
[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finally[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finally
 
[Curso Java Basico - Exceptions] Aula 48: multiplos catch
[Curso Java Basico - Exceptions] Aula 48: multiplos catch[Curso Java Basico - Exceptions] Aula 48: multiplos catch
[Curso Java Basico - Exceptions] Aula 48: multiplos catch
 
[Curso Java Basico] Aula 23: Como debugar no Netbeans
[Curso Java Basico] Aula 23: Como debugar no Netbeans[Curso Java Basico] Aula 23: Como debugar no Netbeans
[Curso Java Basico] Aula 23: Como debugar no Netbeans
 
[Curso Java Basico - Orientacao a Objetos] Aula 31: Modificadores private e p...
[Curso Java Basico - Orientacao a Objetos] Aula 31: Modificadores private e p...[Curso Java Basico - Orientacao a Objetos] Aula 31: Modificadores private e p...
[Curso Java Basico - Orientacao a Objetos] Aula 31: Modificadores private e p...
 

Recently uploaded

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Recently uploaded (6)

[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
Certificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdfCertificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdf
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
Apresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdfApresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdf
 
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdfConcurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 

[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade