递归就是在方法中调用方法本身
递归需要一个最终的“出口”
如下递归求阶乘,阶乘最后都要到乘1的,这就是“出口”
import java.util.Scanner;
public class DiGui {
public static int range(int number){
if(number==1){
return 1;
}else{
return range(number-1)*number;
}
}
public static void main(String[] args) {
System.out.print("请输入阶乘数字:");
Scanner scanner=new Scanner(System.in);
int number=scanner.nextInt();
System.out.println(range(number));
}
}
再如递归输出目录中所有的文件目录,它的“出口”就是文件不是个文件夹
import java.io.File;
public class RangeContext {
public static String range(File file){
String s=file.getAbsolutePath();
for(File f:file.listFiles()){
if(f.isFile()){
System.out.println(f.getAbsolutePath());
}else{
range(f);
}
}
return s;
}
public static void main(String[] args) {
File file = new File("C:\\data");
range(file);
}
}
这些只是简单地事例,感觉递归还是有些难度的