Imagine you wrote such function:
public static int square(int x) {
pow(x, 2);
return x;
}
It will compute the square of x
. But then computed square will not affect anything and the function will return just x.
Now look carefully at your code
if (i == 5){
return i;
} else {
something(i + 1);
}
return i;
If i
is not 5
, something(i + 1)
will be called. Then it will return some value but this value will not affect to anything. And then incrementI
function will return just i
, in your case it’s 0
.
2
solved Why does recursion return the first call in the stack and not the last?