我的2D数组递归有问题。它应该打印这个
*
**
***
****
*****
但我只得到这个:
*****
*****
*****
*****
*****
我认为这是因为我每次都写到同一个数组并覆盖旧的结果。这是我的代码:
public class filleArrayRec {
public static void main(String[] args) {
String[][] array = new String[5][5];
fillArr(array, 0);
for (String[] i : array) {
for (String j : i) {
System.out.print(j);
}
System.out.println();
}
}
private static void fillArr(String[][] array, int index) {
if (index < array.length) {
array[index] = fillArrayLine(array[index], 0);
} else {
return;
}
fillArr(array, index+1);
}
private static String[] fillArrayLine(String[] array, int index) {
if (index < array.length) {
array[index] = "*";
} else {
return array;
}
return fillArrayLine(array, index+1);
}
}
答案 0 :(得分:0)
由于您使用array
初始化new String[5][5]
,所有对fillArrayLine
的调用最终都会传递一个五元素数组,从而填充一个正方形。
将初始化替换为new String[5][]
,然后设置array[i]
:
array[index] = fillArrayLine(new String[index+1], 0);