Recursion Without Loop
Typer | Posted on | |
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);
}
}