练习递归求阶乘
阶乘:所有小于及等于该数的正整数的积
n的阶乘:n!=n*(n-1) *..... *3 * 2 * 1
分析:这与类和类相似 只不过换成了乘法运算 学员可以自己练习 需要注意阶乘值符合int类型的范围
推理得出:n!=n*(n-1)!
代码:
public static void main(String[] args) { int method = method(5); System.out.println(method); } private static int method(int num) { if (num==1){ return 1; } return num*method(num-1); }
运行结果:
递归打印多个目录
代码:
public static void main(String[] args) {
File file = new File("E:\\file");
method(file);
}
private static void method(File file) {
File[] files = file.listFiles();
for (File file1 : files) {
//对遍历得到的File对象进行判断 判断是否是文件夹
if (file1.isDirectory()){
//递归(自己调自己)
method(file1);
}else{
System.out.println(file1);
}
}
}
运行结果:
这里的输出结果有很多 但是我只要后缀是mp3的文件 进下来就是文件搜索
文件搜索
他这有很多后缀 比如txt、mp3、java 我们取出后缀为mp3的文件
分析:
1.目录搜索 无法判断多少级目录 所以使用递归 遍历所有目录
2.遍历目录时 获取的子文件 通过文件名称 判断是否符合条件
代码:
public static void main(String[] args) {
File file = new File("E:\\file");
method(file);
}
private static void method(File file) {
File[] files = file.listFiles();
for (File file1 : files) {
//对遍历得到的File对象进行判断 判断是否是文件夹
if (file1.isDirectory()) {
//递归(自己调自己)
method(file1);
} else {
//将文件遍历转为字符串 也是获取文件的名字
String name = file1.getName();
//使用String里的endsWith:查看结尾是否是mp3这个文件
boolean b = name.endsWith(".mp3");
if (b) {
System.out.println(file1);
}
}
}
}
运行结果:
标签:file1,File,递归,练习,file,阶乘,method From: https://www.cnblogs.com/shenziyi/p/16798359.html