class RecTest
{
int values[];
RecTest(int i)
{
values=new int[i];
}
void pray(int i)
{
if (i==0) return;
else
{
System.out.println(+values[i-1]);
pray(i-1);
}
}
}
class aka
{
public static void main(String h[])
{
RecTest ob=new RecTest(10);
int i;
for(i=0;i<10;i++)
ob.values[i]=i;
ob.pray(10);
}
}
这个程序工作正常,它按降序打印 9,8,7,6,5,4,3,2,1,0。 但是当我交换 System.out.println(+values[i-1]) 和ray(i-1) 语句时,它会按升序打印 0 到 9。
有人可以解释一下为什么会发生这种情况吗?
我就是无法理解它。 Source-Java-2,完整引用,第 5 版,第 171 页
最佳答案
无论您是在堆栈中打印还是返回堆栈,它都会发生变化。打印当前数字然后深入或深入然后打印当前数字。
3 >
2 >
1 >
print 1
print 2
print 3
或
3
print 3 >
2
print 2 >
1
print 1
关于java - 使用递归的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10670800/