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

示例一:求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 }

最新文章

  1. PreparedStatement的应用
  2. CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)
  3. C#为什么不采用多继承:
  4. 通过GP加载卫星云图-雷达图-降雨预报图
  5. 【C#】线程协作式取消
  6. 程序员是怎么炼成的---OC题集--练习答案与题目(2)
  7. 2分钟读懂Hadoop和Spark的异同
  8. (三)、Express 路由、静态文件、
  9. 【转载】Hadoop和大数据:60款顶级大数据开源工具
  10. html 商品展示框
  11. 登录功能(MD5加密)
  12. QMQTT简单介绍(1)
  13. 最快效率求出乱序数组中第k小的数
  14. building 'twisted.test.raiser' extension error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools
  15. spring boot 采坑
  16. 3.建造者模式(Builder)
  17. 错误 在类中找不到main方法请将main方法定义为 public static void main String args否则JavaFX应用程序类必须扩展javafx-ap
  18. bzoj1625:[Usaco2007 Dec]宝石手镯(背包dp板子)
  19. C++获取数组的长度
  20. jgGrid

热门文章

  1. numpy 库使用
  2. ForkJoinPool 源码
  3. P3954 成绩(noip2017普及组)
  4. Oil Deposit
  5. python学习第一次笔记
  6. Problem: 棋盘小游戏(一道有意思的acm入门题
  7. servlet之servlet容器(一)
  8. Axure10种非交互功能简介(引自人人都是产品经理)
  9. ngix请求转发
  10. XMind 8 pro update 7激活方法