This is one of my favorite part of java programming. It is little bit complex with its function. And obviously, it will turn to be a fun part, if you get it. It is called Java Recursion.
So what is Java Recursion?
Recursion is a programming technique where a method calls itself to find result. You need to follow these steps to work with Recursion successfully_
-
_You need to figure out a stopping
point which can be resolve without calling recursive function.
_With calling every recursive method, you must reduce or approach to the stopping point otherwise you will get java.lang.StackOverFlowError(Learn more about StackOverFlowError)
public int myRecursive(){
int myRecursive();
}
ATTENTION!!! This code will never stop. (Needs
stopping point)
Anything special in this code? Yes, the name of the method: myRecursive. This is just a random name that I
chose to use for this method. Actually, nothing special going on there. But,
take a look at what we’re doing inside the method: we’re calling a method named
myRecursive. Notice
anything special there? Yes, that’s the same method name!
So “Recursion!” happens.
Recursion!!! This method will call itself, and it will execute the code
inside, which is to call itself, so it will execute the code inside of that
method, which is to call itself, so it will execute that code, which is to call
itself…
You notice what I’m trying to say?
This code is missing a stopping point, this is the reason why
it will run forever. Let’s include a stopping point.
public int myRecursive (int jVariable){
System.out.println(jVariable);
jVariable--;
if(jVariable == 0) //Stopping Point
return 0;
return myRecursive(jVariable);
}
Do you notice the LINE 4?
When our int jVariable variable holds the value 0,
then this method will not call itself again. It will simply exit out of the
flow. This can be seen from the return 0 statement.
So now, we have a method that calls itself with a
decrementing value of jVariable.
So once jVariable hits
zero, our recursive method is finished!
Try to find output by calling this method_
myRecursive(5);
Think about it, try and follow through the code line by line.
Once you have made a guess, then create a class and put myRecursive method (static) inside your main method. For
behind the scene, throw a breakpoint and debug.
No comments:
Post a Comment