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

时间:2017-05-23 18:01:30

标签: java arrays recursion println

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

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

2 个答案:

答案 0 :(得分:1)

该方法打印一个数组,该数组必须是名为values的实例或类变量。

不考虑初始给定指数。

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

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

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

答案 1 :(得分:0)

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

  • else块处于活动状态:printarray(2)
  • else块处于活动状态:printarray(1)
  • else块处于活动状态:printarray(0)
  • 如果块处于活动状态,因为i = 0并返回