zoukankan      html  css  js  c++  java
  • Java递归:一个NB自慰的操作

    递归的核心思想:自身调用自身

    示例一:求5的阶乘

    常规方法:

    使用while循环

     1 public class Demo01 {
     2 
     3      public static void main(String[] args) {
     4          int result = test(5);
     5          System.out.println("结果是"+result);
     6      }
     7      
     8      public static int test(int num) {
     9         int result=1;
    10         while (num>0) {
    11             result=result*num;
    12             num--;
    13         }
    14         return result;
    15     }
    16 }

     使用递归

     1 public class Demo01 {
     2 
     3      public static void main(String[] args) {
     4          int result = print(5);
     5          System.out.println("结果是"+result);
     6      }
     7      
     8      public static int print(int num) {
     9          if(num==1) {
    10              return 1;
    11          }else {
    12              return num*print(num-1);
    13          }
    14      }
    15 }

    示例二:

    列出一个文件夹的子孙文件与目录

     1 public class Demo01 {
     2 
     3      public static void main(String[] args) {
     4          File dir=new File("F:\aa");
     5          listFiles(dir,"|--");
     6      }
     7      
     8      public static void listFiles(File dir, String space) {
     9          File[] files = dir.listFiles();
    10          for(File file : files) {
    11              if(file.isFile()) {
    12                  System.out.println(space+file.getName());
    13              }else if(file.isDirectory()) {
    14                  listFiles(file, "|  "+space);
    15              }
    16          }
    17      }
    18 }

    示例三:

    删除一个非空的文件夹

     1 public class Demo01 {
     2 
     3      public static void main(String[] args) {
     4          File dir=new File("F:\aa");//创建对象并指定
     5          deleteDir(dir);
     6      }
     7      
     8      public static void deleteDir(File dir) {
     9          File[] files = dir.listFiles();  //列出了所有的子文件
    10          for(File file : files) {       //文件遍历查询
    11              if(file.isFile()) {        //如果是文件,执行删除操作
    12                  file.delete();
    13              }else if(file.isDirectory()) {     //如果是文件夹,则再调用自身方法
    14                  deleteDir(file);  //括号中的file只是名字,之所以为什么不是dir,只是将上面的名字又带入了deleteDir方法中
    15              }
    16          }
    17      }
    18 }
  • 相关阅读:
    元素居中显示
    文本框 获取焦点 失去焦点 实时监听
    cookie/ localStorage /sessionStorage区别
    h5新增标签
    css3属性中的transform属性
    精简 闭包
    let const定义及用法
    关于arguments映射的问题
    Linux云自动化运维第二课
    下载模版的具体代码
  • 原文地址:https://www.cnblogs.com/szdszz/p/9135355.html
Copyright © 2011-2022 走看看