java中的递归如何理解,能举个例子最好了,希望说的详细一点,比如说有递归入口,递归出口什么的

谢谢

class Factorial {
int fact(int n) {
int result;
if (n == 1) return 1;
result = fact(n-1) * n;
return result;
}
}
它是这样工作的:当fact( ) 带着参数1被调用时,该方法返回1;否则它返回fact( n-1 ) 与n的乘积。为了对这个表达式求值,fact() 带着参数n-1 被调用。重复这个过程直到 n 等于 1,且对该方法的调用开始返回。
给你据个例子:
例如当计算3 的阶乘时,对fact() 的第一次调用引起参数2的第二次调用。这个调用将引起fact 以参数1 的第三次调用,这个调用返回1,这个值接着与2(第二次调用时n的值)相乘。然后该结果(现为2)返回到fact()的最初的调用,并将该结果与3(n的初始值)相乘。这时得到答案,6。如果你在fact()中插入println() 语句,显示每次调用的阶数以及中间结果
不知道这么说,你能理解不
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-01-19
import java.io.File;

public class FileListDemo {
public static void main(String[] args){
getAllFiles(new File("c:/"));
}
public static void getAllFiles(File dirPath){
System.out.println("dir:"+dirPath.getName()); //输出目录名
File[] files = dirPath.listFiles(); //得到目录下所有的文件和目录
for(int i=0;i<files.length;i++){
if(files[i].isDirectory()){
getAllFiles(files[i]); //如果是目录,递归调用
}else{
System.out.println("file:"+files[i].getName());//输出文件名
}
}
}

}
第2个回答  2009-01-19
LZ可以去看下这篇文章:
第3个回答  2009-01-19
递归不就是自己调用自己吗?直到满足某一定特定条件就跳出来。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网