Boa tarde, pessoal.
Gostaria de entender um problema de recursão.
if(indice2<=vetor.size()-1)
{
while(indice1<=vetor2.size()-1)
{
vetorResultado[indice2] = vetorPadrao[indice1];
metodoRecursivo(vetorPadrao, indice1++, vetorResultado, indice2+1);
}
}
else{
variavel++;
}
Neste código, eu verifiquei que o índice2, é incrementado até o indice2 é incrementado até a condição de chamada de recursão (cai no else) é feito, mas o indice1 não é incrementado, fica em 0, só o indice2 fica incrementando (vi isso pelo DEBUG).
Aí cai no else, diminui um número no indice2, isto é, se ele caiu fora quando tava valendo 5, quando cai no else, ele volta para o 4, aí incrementa o indice1.
Então:
indice1 = 0
indice2 = 5
Caiu no else…
indice1 = 1
indice2 = 4
Está certo, na recursão ele “volta” na última chamada, ok…Mas, pq dps quando voltou o indice1 está 1?
Qual diferença entre o “++” e o “+1” numa chamada Recursiva?
Ficou meio complicado de explicar, mas espero que tenham entendido.
Obrigado!!!
