JAVA递归问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 23:47:41
Restest(int i)
{
values = new int[i];

}
void printArray(int i)
{
if(i==0)
{
return;
}
else
{
printArray(i-1);}
System.out.println(i);

System.out.println("[" + (i-1)+"]" + values[i-1]);

}
}

class Recursion
{
public static void main(String args[])
{
Restest ob = new Restest(10);
int i;
for(i=0;i<10;i++) ob.values[i]=i;
ob.printArray(10);
}
}

在下面这段中
else
{
printArray(i-1);}
System.out.println(i);

System.out.println("[" + (i-1)+"]" + values[i-1]);
当执行完else { printArray(i-1);}
后是先执行else { printArray(i-1);}这个后面的语句呢还是先执行
printArray(i-1)去掉用这个递归呀`!
请详细说明一下.不要直接运行一下就告诉我...我要知道是为什么?
谢谢
不好意思呀.程序没有打完整.
还有呀if 中用return语句是什么意思?返回什么还是跳if语句??
谢谢知道return是跳出方法了

先回答你的return问题,当你的if语句i==0的时候,返回出来而不去执行下面的语句。当if(i==0)不成立的成立的时候去执行下面语句。
else语句,是先执行 printArray(i-1); 在跳出判断,执行下面的语句。
回答的有限,因为偶的JAVA也学不怎么好!

Restest(int i)
{
values = new int[i];

}

你这个values没定义也可以用的么,能告诉我为什么么~~`

`````````````
当执行else { printArray(i-1);}时,程序会去找方法“printArray()”,运行完后,才会去运行后面的程序`