其他分享
首页 > 其他分享> > 练习使用递归计算阶乘和练习递归打印多级目录

练习使用递归计算阶乘和练习递归打印多级目录

作者:互联网

使用递归计算阶乘
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