package com.qianfeng.test;
import java.io.File;
public class Demo9 {
public static void main(String[] args) {
/*
* 实例作业:得到当前目录下的所有自层的文件--递归
*
* 要重复实现的功能(重复干的活):遍历目录。 出口:遇到文件。
*
* 思路:写一个read方法,该方法功能:遍历目录。
* 1.如果当前目录为文件夹,继续往下遍历(调用read方法)。
* 2.如果当前目录为文件,直接打印。
*
*/
File file = new File("D:\\workspace\\32\\BigData1715N19");
read(file);
}
public static void read(File file) {
// 判断当前目录是否为文件.
// 判断是否为空文件夹|| file.list().length == 0
if (file.isFile()) {
System.out.println(file);
} else {
System.out.println(file);//获得目录下的所有文件和文件夹的全路径(包含自层,包含文件夹)
File[] files = file.listFiles();
if(files!=null){
for (File f : files) {
read(f);
}
}
}
}
}
递归求1-100之间的和
package com.qianfeng.test;
/*
* 递归:有条件的自己调用自己(方法)。
* 适合于,方法中运算符的主体不变,但是运行的时候,参与运行的方法参数会变化。
*
* 条件:
* 1.要给一个出口负责结束当前的递归。
* 2.循环次数不能太多,否则占用的内存过多,死机。
*
* 死循环:1.自己调用自己(方法) 2.方法之间互相调用。
*
* 求:1-100之间的和。
*
*/
public class Demo10 {
public static void main(String[] args) {
// int sum=0;
// for (int i = 0; i <= 100; i++) {
// sum+=i;
// }
//使用递归
Dog.run();
}
}
class Dog{
static int sum=0;
static int i =0;
public static void run(){
sum+=i;
System.out.println(sum);
if (i++ == 100) {
return;
}
run();
}
}
递归求1到10之间的偶数的积与奇数的积的差
package com.qianfeng.test;
public class Demo11 {
public static void main(String[] args) {
/*
* 递归的实例:求1到10之间的所有偶数的积与所有奇数的积差
*/
System.out.println(Cat.run());
}
}
class Cat{
static int i=1;
static int j1=1;//偶数
static int j2=1;//奇数
public static int run(){
if(i%2==0){
j1*=i;
}else {
j2*=i;
}
if (i++ == 10) {
return j1-j2;
}
int a = run();
return a;
}
}