java 递归

递归

递归的概念:来自英雄哥的视频

递归的案例一:算出1-100之间的数相加

/**
 * @Classname : demo05
 * @Description : TODO 递归 - 1-100之间的数的和
 * @Author : lin_refuel@qq.com
 */
public class demo05 {
    public static void main(String[] args) {
        //递归就是自己调用自己
         int sum = Recursion(100);
        System.out.println("sum =" + sum);
    }
    private static int Recursion(int n) {
        if(1 == n)//停止递的条件
        return 1;//进入归
        return n + Recursion(n -1);//进入递
    }
}

运行结果:
在这里插入图片描述

递归案例二:递归传话

demo:

总之,3次递归,执行3次递,3次归

/**
 * @Classname : demo05
 * @Description : TODO 递归 - 1-100之间的数的和
 * @Author : lin_refuel@qq.com
 */
public class demo05 {
    public static void main(String[] args) {
        //递归就是自己调用自己
         Recursion(3);
    }

    private static void Recursion(int i) {
        System.out.printf("我开始进行第%d次递的过程\n",i);
        if(i > 1) //递结束
            Recursion(i-1);
        System.out.printf("我开始了往回归的第%d的过程\n",i);
    }
}

运行结果:
在这里插入图片描述

递归案例三:File目录的递归操作demo:

import java.io.File;

/**
 * @Classname : demo06
 * @Description : TODO 递归遍历一个目录
 * @Author : lin_refuel@qq.com
 */
public class demo06 {
    public static void main(String[] args) {
        //定义一个File对象,对文件目录的字符串进行包装
        File file = new File("F:/Filedelete");
        //定义一个递归开始遍历目录
       // RecursionFile(file);
        //定义一个删除目录文件
        deleteFile(file);
    }

    private static void deleteFile(File file) {
        //当前目录里面的内容转换成File类型,放入数组
        File[] files = file.listFiles();
        //遍历数组
        for(File f : files){
            //判断是否为目录
            if(f.isDirectory()){
                deleteFile(f); //调用自己
            }else{
                f.delete();//删除文件
            }
        }
        file.delete();//删除目录本身
    }

    private static void RecursionFile(File file) {
        //调用方法使当前目录里面的内容都变成File类型放到File类型数组
        File[] files = file.listFiles();
        //调用循环,开始进行目录访问,判断,返回
        for(File f:files){
            //判断是否是一个目录
            if(f.isDirectory()){
                //输出目录的绝对路径名字
                //System.out.println(f.getAbsolutePath());
                RecursionFile(f);//继续调用自己,
            }else{
                System.out.println(f.getAbsolutePath());
            }
        }
    }
}
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值