递归

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CSDN_GIA/article/details/87441667

递归

递归:函数的自身调用函数的自身。

案例一:计算5的阶乘

public class Demo{

	public static void main(String[] args) {
		int result = print(5);
		System.out.println("结果是:"+ result);
	}
	
	public static int print(int num){
		if(num==1){
			return 1;
		}else{
			return num*print(num-1);
		}
	}

	public static int test(int num){
		int result  =  1;
		while(num>0){
			result = result*num;
			num--;
		}
		return result;
	}
}

5的阶乘.png

案例二:列出一个文件夹的子孙文件与目录。

案例三:列出指定目录中所有的子孙文件与子孙目录名,要求名称前面要有相应数量的空格:

案例四:列出指定目录中所有的子孙文件与子孙目录名,要求要是树状结构
如图:

	|--xx
	|   |--xx
	|   |   |--xx
	|   |   |   |--xx
	|   |   |   |   |--xxxx
	|   |   |   |--xx
	|   |   |   |   |--xxxx
	|   |   |   |--xx
	|   |   |   |   |--xxxx

demo:

public class Demo {
	
	public static void main(String[] args) {
	/*	File dir = new File("F:\\workspace");
		listFiles3(dir,"|--");*/
		
		File dir = new File("F:\\aa");
		deleteDir(dir);
	}
	
	
	//删除了一个非空的目录
	public static void deleteDir(File dir){ // bb
		File[] files = dir.listFiles(); //列出了所有的子文件
		for(File file : files){
			if(file.isFile()){
				file.delete();
			}else if(file.isDirectory()){
				deleteDir(file);
			}
		}
		dir.delete();
	}

	public static void listFiles3(File dir,String space){ //space 存储的是空格
		File[] files = dir.listFiles(); //列出所有 的子文件
		for(File file : files){
			if(file.isFile()){
				System.out.println(space+file.getName());
			}else if(file.isDirectory()){
				System.out.println(space+file.getName());
				listFiles3(file,"|   "+space);
			}
			
		}
		
		
	}

	//列出一个文件夹的子孙文件与目录。
	public static void listFiles2(File dir,String space){ //space 存储的是空格
		File[] files = dir.listFiles(); //列出所有的子文件
		for(File file : files){
			if(file.isFile()){
				System.out.println(space+file.getName());
			}else if(file.isDirectory()){
				System.out.println(space+file.getName());
				listFiles2(file,"  "+space);
			}
			
		}
		
	}

	//列出一个文件夹的子孙文件与目录。
	public static void listFiles1(File dir){
		File[] files = dir.listFiles(); //列出所有的子文件
		for(File file : files){
			if(file.isFile()){
				System.out.println("文件名:"+file.getName());
			}else if(file.isDirectory()){
				System.out.println("文件夹:"+file.getName());
				listFiles1(file);
			}
			
		}

	}
	
}
展开阅读全文

没有更多推荐了,返回首页