递归
什么是递归?方法在调用的过程中,又回到自己的方法中。
递归:直接递归、间接递归。
直接递归:方法自己在内部调用自己。
间接递归:A方法调用B方法,B方法调用C方法。。。。最后又回到调用A方法上。
案例:
(笔试题)使用递归计算1+2+3+...+1000
public class DiGui {
public static void main(String[] args) {
System.out.println("1+2+3+...+1000"+"="+getSum(10));
}
public static int getSum( int i ){
if( i > 1 ){
return i + getSum(i-1);
}
return 1;
}
}
案例二:打印某个目录下的所有文件
package d.e.m.o;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
//File file = new File("d:\\Temp");
File file = new File("d:/work");
System.out.println(file);
getFile(file);
}
private static void getFile(File file) {
File[] files = file.listFiles();
if( files != null ) {
for (File file2 : files) {
if (file2.isDirectory()) {
//判断成立,说明是文件夹,递归
getFile(file2);
} else {
System.out.println(file2);
}
}
}
}
}