/**
 * A recursion demo that adds the numbers 1-5
 *
 * @author TK Rogers
 * @version 10-8-09
 */
 
public class RecursionDemoAdd {
    public static void main ( ) {
        System.out.println("final = " + addUp(5));
        // after the recursion runs         ^
        // the final value is returned here ^
    }
 
    public static int addUp (int n)  {
    // This method is recursion because it calls itself,
    // changes the value of its argument each time it's called,
    // has a means of stopping itself.
        System.out.println (n); // Allows us to see what's happening
        if (n<=1) {  //stops the recursion
            return 1;
        }
        return n + addUp(n-1);
     // return 5 + addUp(n-1);
     //                 return 4 + addUp(n-1);
     //                                 return 3 + addUp(n-1);
     //                                                 return 2 + addUp(n-1);
     //                                                                 return 1      ;
     // Each returned value is saved in a stack. When the recursive
     // method ends, the values in the stack are processed starting
     // with the last value. In this cast the values are added.
    }
}