Recursion Without Loop

public class RecursionWithoutLoop {

    static int stepCounter = 1; // Shared counter to label each step

    // Method A: Top-down recursion (prints before recursion)
    static void methodA(int n) {
        if (n <= 10) {
            System.out.printf("→ Step %2d: Print n = %d\n", stepCounter++, n);
            methodA(n + 1);
        }
    }

    // Method B: Bottom-up recursion (recurses before printing)
    static void methodB(int n) {
        if (n >= 0) {
            System.out.printf("→ Step %2d: Recurse with n = %d\n", stepCounter++, n);
            methodB(n - 1);
            System.out.printf("↩ Step %2d: Print n = %d\n", stepCounter++, n);
        }
    }

    public static void main(String[] args) {
        System.out.println("=== Executing methodA(n = 7) ===\n");
        stepCounter = 1;
        methodA(7);

        System.out.println("\n=== Executing methodB(n = 4) ===\n");
        stepCounter = 1;
        methodB(4);
    }
}

 

Scroll to Top