### 5.8. Recursion

The methods you have seen so far have been called from within other methods, but a method can also call itself. A method that calls itself is described as a recursive method, and the process is referred to as recursion. You can also have indirect recursion where a method A calls another method B, which in turn calls the method A. Clearly you must include some logic in a recursive method so that it will eventually stop calling itself if the process is not to continue indefinitely. You can see how this might be done with a simple example.

You can write a method that will calculate integer powers of a variable—in other words, evaluate `xn`, or x*x...*x where x is multiplied by itself n times. You can use the fact that you can obtain `xn` by multiplying `xn-1` by x. To put this in terms of a specific example, you can calculate 2^{4} as 2^{3} multiplied by 2, and you can get 2^{3} by multiplying 2^{2} by 2, and 2^{2} is produced by multiplying 2^{1}, which is 2, of course, by 2.

## Try It Out: Calculating PowersHere is the complete program, including the recursive method power(): public class PowerCalc { public static void main(String[] args) { double x = 5.0; System.out.println(x + " to the power 4 is " + power(x,4)); System.out.println("7.5 to the power 5 is " + power(7.5,5)); System.out.println("7.5 to the power 0 is " + power(7.5,0)); System.out.println("10 to the power −2 is " + power(10,-2)); } // Raise x to the power n static double power(double x, int n) { if(n > 1) return x*power(x, ... |

Get *Ivor Horton's Beginning Java™ 2, JDK™ 5th Edition* now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.