Função
recursiva
é
aquela
que
se
chama
dentro
dela
mesma.
Dependendo
da
situação
é
útil
usar,
mas
dependendo
é
bem
chatinho.
O
grande
exemplo
da
função
recursiva
é
a
do
fatorial.
E
sinceramente,
acho
que
é
só
o
que
a
gente
precisa
saber,
duvido
que
caia
na
prova
alguma
função
recursiva
que
a
gente
ainda
não
tenha
visto.
Até
a
do
fatorial
eu
acho
inútil,
um
for
é
bem
mais
prático.
Existem
algumas
coisas
que
a
gente
precisa
levar
em
conta
ao
fazer
uma
função
recursiva,
e
NÃO
PODE
ESQUECER.
1
– quando
ela
vai
acabar?
O
primeiro
comando
deve
ser
um
que
determine
o
que
a
função
vai
fazer
na
sua
última
execução.
No
caso
do
fatorial,
if
(n==0)
return
1;
2
– só
podemos
chamar
a
função
de
novo
depois
desse
if de
terminar,
senão
ela
fica
rodando
pra
sempre
e
nós
não
queremos
isso.
Eis a função do fatorial:
int fatorial (int n) { if(n==1 || n==0) return 1; return fatorial(n-1) * n; }
Reparou? Ela se chama repetidas vezes, uma chamada vai abrindo a outra até chegar em 1 ou 0, que é quando o programa retorna 1 pra chamada mais interna, que retorna o valor dessa pra anterior, que retorna pra anterior até terminar.
Para os leigos: não, não preciso do else depois daquele if. Porque se entrar no if vai retornar, e o retorno interrompe a execução do bloco.
Nenhum comentário:
Postar um comentário