I'm trying to learn recursion. I copied this bit of code from my book and added the displays to help me trace what the method is doing and when.
public static void main(String[] args) {
System.out.println(sum(4));
}//main
public static int sum(int n) {
int sum;
System.out.println("n = " + n + "\n");
if (n == 1)
sum = 1;
else
sum = sum(n - 1) + n;
System.out.println("n after function = " + n + "\n");
System.out.println("sum after function = " + sum + "\n");
return sum;
}
Here's the results:
n = 4
n = 3
n = 2
n = 1
n after function = 1
sum after function = 1
n after function = 2
sum after function = 3
n after function = 3
sum after function = 6
n after function = 4
sum after function = 10
10
I'm getting hung up on what's being stored in the stack, or perhaps how it's being stored.
Is there a way to display what's in the stack while n is counting down to 1?
This is an odd concept - it's like an invisible loop storing values in a way I don't understand.