Java Recursion
Java Recursion
w3schools.com LOG IN
sonarqube.org
OPEN
Scala Static Analysis
Java Recursion
❮ Previous Next ❯
Java Recursion
Recursion is the technique of making a function call itself. This technique provides a
way to break complicated problems down into simple problems which are easier to
solve.
Recursion may be a bit difficult to understand. The best way to figure out how it
works is to experiment with it.
Recursion Example
Adding two numbers together is easy to do, but adding a range of numbers is more
complicated. In the following example, recursion is used to add a range of numbers
together by breaking it down into the simple task of adding two numbers:
Example
Use recursion to add all of the numbers up to 10.
Run example »
Example Explained
When the sum() function is called, it adds parameter k to the sum of all numbers
smaller than k and returns the result. When k becomes 0, the function just returns
0. When running, the program follows these steps:
10 + sum(9)
10 + ( 9 + sum(8) )
10 + ( 9 + ( 8 + sum(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
10 +9+8+7+6+5+4+3+2+1+0
Since the function does not call itself when k is 0, the program stops there and
returns the result.
Halting Condition
Just as loops can run into the problem of infinite looping, recursive functions can run
into the problem of infinite recursion. Infinite recursion is when the function never
stops calling itself. Every recursive function should have a halting condition, which is
the condition where the function stops calling itself. In the previous example, the
halting condition is when the parameter k becomes 0.
Run example »
❮ Previous Next ❯
ADVERTISEMENT
HTML CSS MORE EXERCISES
COLOR PICKER
SHOP
HOW TO
Tabs
Dropdowns
Accordions
Side Navigation
Top Navigation
Modal Boxes
HTML CSS MORE EXERCISES
Progress Bars
Parallax
Login Form
HTML Includes
Google Maps
Range Sliders
Tooltips
Slideshow
Filter List
Sort List
SHARE
CERTIFICATES
HTML
CSS
JavaScript
Python
SQL
PHP
And more
ADVERTISEMENT
HTML CSS MORE EXERCISES
Samsung
Blue Tag
Sale is
Back
Samsung
View our
unbeatable
savings and
amazing prices
with the
Samsung Blue
Tag Sale.
OPEN
ADVERTISEMENT
ADVERTISEMENT
HTML CSS MORE EXERCISES
REPORT ERROR
FORUM
ABOUT
SHOP
Top Tutorials
HTML Tutorial
CSS Tutorial
JavaScript Tutorial
How To Tutorial
SQL Tutorial
Python Tutorial
W3.CSS Tutorial
Bootstrap Tutorial
PHP Tutorial
Java Tutorial
C++ Tutorial
jQuery Tutorial
Top References
HTML Reference
CSS Reference
JavaScript Reference
SQL Reference
Python Reference
W3.CSS Reference
Bootstrap Reference
PHP Reference
HTML Colors
Java Reference
Angular Reference
jQuery Reference
Top Examples
HTML Examples
HTML CSS MORE CSS
Examples EXERCISES
JavaScript Examples
How To Examples
SQL Examples
Python Examples
W3.CSS Examples
Bootstrap Examples
PHP Examples
Java Examples
XML Examples
jQuery Examples
Web Certificates
HTML Certificate
CSS Certificate
JavaScript Certificate
SQL Certificate
Python Certificate
PHP Certificate
Bootstrap Certificate
XML Certificate
jQuery Certificate
Get Certified »
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and
learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot
warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our
terms of use, cookie and privacy policy.