A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 辉大大 中级黑马   /  2015-7-29 20:39  /  279 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

首先,递归:是方法内部调用方法的现象

注意事项:递归一定要有出口,否则就是死递归;
          递归不要次数太多,否则就会内存溢出;


递归使用分析
   
   递归在使用中,一般需要if....else....语句

   思路:
      1、出口:一般用已知项作为出口;
      2、规律:寻找规律

  举例:如5!

  规律:5!= 5*4*3*2*1  =5*4!
        n! = n*(n-1)!

        方法:fun(n)= n!
  出口:1

public static int fun(int n){
        if (n = 1) {
                return 1;
        }else
                return n*fun(n-1)
}


/*
  需求:显示目录"e:\\"下以".java"为后缀的文件
       
        思路:
          1、创建封装目录
          2、获取该目录下的所有文件及文件夹的File数组
          3、遍历数组
          4、判断是否是目录
                是:继续从第2步开始 (递归:方法内调用方法)
                否:输出以".java"为后缀的文件

*/

class FileDemo {
        public static void main(String[] args) {
                File file = new File("e:\\");

                showFile(file);
        }

        public static void showFile(File file) {
               
                //获取该目录下的所有文件及文件夹的File数组
                File[] file1 = file.listFiles();

                //遍历数组
                for(File f : file1) {
                        if (f.isDirectory()) {
                                showFile(f);//递归
                        }else {
                                if(f.getName().endswith(".java")){
                                        Sysotem.out.println(f.getAbsolutePath());
                                }
                        }
                }
        }
}


//删除文件下的所有文件即目录
    public static void deleteFile(File file) {
        File[] file1 = file.listFiles();
        //if(file1 != null)
        for (File f : file1) {
                if (f.isFile()) {
                        System.out.println(f.getName+":"+f.delete());
                }else
                        deleteFile(file);
        }

        System.out.println(file.getName+":"+file.delete);
    }

评分

参与人数 5黑马币 +27 收起 理由
A等待着 + 2 神马都是浮云
范玉 + 10 很给力!
某某 + 6 很给力!
惜爱上缘 + 6 赞一个!
胡家兵 + 3 神马都是浮云

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马