递归方法如何帮助打印数组
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
void printarray(int i) {
if (i == 0) {
return;
} else {
printarray(i - 1);
}
System.out.println("[" + (i - 1) + "]" + values[i - 1]);
}
它是一个使用递归打印数组的程序。谁能告诉我上面的方法是如何工作的??
该方法打印一个数组,该数组必须是名称为 values
.
不考虑初始给定索引。
该方法从最顶层的索引开始,并使用减一的索引调用自身。 当它到达索引 0 时,这是 return 链的开始。 在递归调用 returning 之后,打印当前索引处的值 - 在索引本身之后。
一个电话打印在下一个电话下面。 这些行从索引 0 开始到索引 i - 1 停止(用于初始调用的索引)。
更新: 感谢@Turing85 我修正了我自己对打印索引的假设。
示例:i = 3 => printarray(3)
- 其他块处于活动状态:printarray(2)
- 其他块处于活动状态:printarray(1)
- 其他块处于活动状态:printarray(0)
- 如果块处于活动状态,因为 i = 0 并且 return