递归方法如何帮助打印数组

how does recursion method helps in printing array

void printarray(int i) {
    if (i == 0) {
        return;
    } else {
        printarray(i - 1);
    }
    System.out.println("[" + (i - 1) + "]" + values[i - 1]);
}

它是一个使用递归打印数组的程序。谁能告诉我上面的方法是如何工作的??

该方法打印一个数组,该数组必须是名称为 values.

的实例或 class 变量

不考虑初始给定索引。

该方法从最顶层的索引开始,并使用减一的索引调用自身。 当它到达索引 0 时,这是 return 链的开始。 在递归调用 returning 之后,打印当前索引处的值 - 在索引本身之后。

一个电话打印在下一个电话下面。 这些行从索引 0 开始到索引 i - 1 停止(用于初始调用的索引)。

更新: 感谢@Turing85 我修正了我自己对打印索引的假设。

示例:i = 3 => printarray(3)

  • 其他块处于活动状态:printarray(2)
  • 其他块处于活动状态:printarray(1)
  • 其他块处于活动状态:printarray(0)
  • 如果块处于活动状态,因为 i = 0 并且 return