递归概念&分类&注意事项
ps:
public FileList() {
FileList(); //报错
}
练习:用递归计算1-n之间数的和
public class RecurrenceClass {
public static void main(String[] args) {
int sumAll = sum(5);
System.out.println(sumAll);
}
public static int sum(int n) {
if(n == 1) {
return 1;
}
return n + sum(n - 1);
}
}
练习:用递归计算1乘到i的值
public class RecurrenceMul {
public static void main(String[] args) {
int multiply = multiply(5);
System.out.println(multiply);
}
public static int multiply(int i) {
if(i == 1) {
return 1;
}
return i * multiply(i - 1);
}
}
练习:递归打印多级目录
public class NewClass {
public static void main(String[] args) {
File f1 = new File("K:\\aa");
printDir(f1);
}
public static void printDir(File dir) {
System.out.println(dir);
File[] files = dir.listFiles();
for (File file : files) {
if(file.isDirectory()) {
printDir(file);
}else {
System.out.println(file);
}
}
}
}
练习:文件搜索
只搜索以java为结尾的文件
public class SearchPractice {
public static void main(String[] args) {
File f1 = new File("F:\\test");
method(f1);
}
public static void method(File f1) {
File[] files = f1.listFiles();
for (File file : files) {
if(file.isDirectory()) {
method(file);
}else {
if(file.getName().toLowerCase().endsWith(".java")) {
System.out.println(file);
}
}
}
}
}