troubleshooting Question

Recursion

Avatar of CrazyOne
CrazyOneFlag for United States of America asked on
Java
17 Comments1 Solution270 ViewsLast Modified:
Ok I have some fundamental understanding of recursion. Basically it’s a loop. What I don’t understand is for example in the following code is how does the return keep updating its calculations without refreshing itself with every loop. In other words how does it not lose its value after every iteration through itself? Also with the following code eventually the value will count down to 0 so why does it not return 0 being that the first statement is set to return a 0 if 0 is detected.

For example if I pass the value 3 as the parameter the method returns 6 which is the correct return. However after each iteration the value of the parameter is reduced by 1 eventually reaching 0. Now after it reaches 0 shouldn’t the Base case statement be processed and the return be 0?

FYI this isn’t for a school project it is for my personal understanding. The semester is over but I still feel I need to increase my understanding of how and why recursion does what it does before I am able to be comfortable with using it.
public static int mystery (int n) 
   {
	 
	  if (n == 0)
		 return 0;
	  else
		 return n + mystery(n-1);
	  
	  //The following is an exampler of what recursion looks like using a loop instead
	 /* int intCount = n;
	  if (intCount == 0)
		 return 0;
	  else
	  {
		 while (n != 0)
		 {
			intCount = intCount  + n-1;
			n--;
		 }
		 //return n + mystery(n-1);
	  }
	  return intCount;*/
   }

Open in new window

ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 1 Answer and 17 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 17 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros