练习使用递归计算阶乘和练习递归打印多级目录
作者:互联网
使用递归计算阶乘
n的阶乘:n! = n*(n-1)…321
5的阶乘:5!=5*(5-1)32*1
public class Demo03Recursion { public static void main(String[] args) { int jiecheng = jc(5); System.out.println(jiecheng); } /* 定义方法使用递归计算阶乘 5的阶乘:5!=5*(5-1)*3*2*1 递归的结束条件 获取到1的时候结束 递归的目的 获取下一个被加的数字(n-1) */ public static int jc(int n){ //获取到1的时候结束 if (n==1){ return 1; } //获取下一个被乘的数字(n-1) return n * jc(n-1); } }
递归打印多级目录
public class Demo04Recurison { public static void main(String[] args) { File file = new File("c:\\abc"); getAllFile(file); } /* 定义一个方法,参数传递File类型的目录 方法中对目录进行遍历 */ public static void getAllFile(File dir){ //System.out.println(dir);//打印被遍历的目录名称 File[] files = dir.listFiles(); for (File f : files) { //对遍历得到的File对象f进行判断,判断是否是文件夹 if(f.isDirectory()){ //f是一个文件夹,则继续遍历这个文件夹 //我们发现getAllFile方法就是传递文件夹,遍历文件夹的方法 //所以直接调用getAllFile方法即可:递归(自己调用自己) getAllFile(f); }else{ /*只要.java结尾的文件 1.把File类的对象f,转换为字符串对象 方法:(1)String s = f.getName(); (2)String s1 = f.getPath(); 2.对字符串大小写统一 s.toLowerCase(); 3.调用String中的方法endWith判断字符串是否是以.java结尾,如果是,则输出 */ String s = f.getName(); boolean b = s.toLowerCase().endsWith(".java"); if (b) { System.out.println(f); } } } } }
标签:遍历,String,练习,递归计算,File,阶乘,getAllFile,public 来源: https://www.cnblogs.com/xuche/p/16458114.html