Java(递归打印)

一.概念

旨在当前方法内调用自己的这种现象

二.递归的分类

1.直接递归
    方法自身调用自己
2.间接递归
    A方法调用B方法,B方法调用C方法,C方法调用A方法
3.注意事项:
    一定要有条件限定,保证递归能停止,否则出现栈内存溢出
    虽然有限定条件,但是递归次数不能太多,否则出现栈内存溢出
    构造方法:禁止递归

三.递归使用前提

当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归

四.递归求阶层

/*
定义方法使用递归计算阶乘:5!=5*4*3*2*1
 */
    public static void main(String[] args) {
        int jc = jc(5);
        System.out.println(jc);

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

五.递归打印多级目录

  public static void main(String[] args) {

      File file = new File("G:\\idea");
      getAllFile(file);
  }
  public static void getAllFile(File f){
      System.out.println(f);//打印遍历的目录名称
      File[] files = f.listFiles();
      for (File file : files) {
          //对遍历得到的File对象file进行判断,判断是否是文件夹
          if (file.isDirectory()){//是文件夹
              getAllFile(file);//继续遍历里面的文件/文件夹
          }else {//是文件
              System.out.println(file);//文件就打印
          }
      }
  }
posted @ 2021-03-18 20:55  一名初学者  阅读(289)  评论(0)    收藏  举报