Gostaria de saber se alguem pode me explicar o que acontece com esse código:
CLASSE MODELO:public class rec {
private int a;
private int b;
public void rec(int a, int b) {
this.recAux(a, b);
}
public int recAux(int a, int b) {
if (a == 0) {
return b;
} else {
a--;
b++;
b++;
this.recAux(a, b);
}
return b;
}
}
public class main {
public static void main(String[] args) {
rec r = new rec();
int i =r.recAux(5, 0);
System.out.println(i);
}
}
Se eu fizer o método recAux como void e dentro do if mandar dar um Println no B, funciona beleza...
Do jeito que está aí, depois que ele entra no bloco do if e executa o return b, ele pula para a chamada do método recAux e continua executando até o a assumir zero novamente, aí ele pára...
alguém pode me explicar por que isso acontece???
