【发布时间】:2020-09-05 14:06:26
【问题描述】:
我一直在尝试打印元素
int[][]a= {{2,-36,98},{21,55},{2,5,4,7,6},{101}}
借助递归而不是循环。现在我有一段代码,但它会打印出多余的不需要的元素。
public class RecursionDoubleLoop {
void loop(int[][]a,int x,int y)
{
int n=a.length;
if(x<n)
{
if(y<a[x].length)
{
System.out.println(a[x][y]+" ");
y+=1;
if(y<a[x].length)
loop(a, x, y);
}
y=0;
x+=1;
/*if(x>=n)
{
System.exit(0);
}*/
if(x<n) {
loop(a, x, y);}
}
}
public static void main(String[] args) {
RecursionDoubleLoop obj= new RecursionDoubleLoop();
int[][]a= {{2,-36,98},{21,55},{2,5,4,7,6},{101}};
obj.loop(a, 0, 0);
}
}
现在预期的输出是
2 -36 98 21 55 2 5 4 7 6 101
我的输出
2 -36 98 21 55 2 5 4 7 6 101 101 101 101 101 2 5 4 7 6 101 101 101 101 101 21 55 2 5 4 7 6 101 101 101 101 101 2 5 4 7 6 101 101 101 101 101 21 55 2 5 4 7 6 101 101 101 101 101 2 5 4 7 6 101 101 101 101 101
尝试调试,但最终不得不取消注释 System.exit(0) 函数。
如果有人能指出错误将非常有帮助。
【问题讨论】:
标签: java arrays loops recursion