递归删除文件,递归计算1+2+...+100

/**
 * 递归:
 * 1:首先考虑极端情况,什么时候停止
 * 2:每种可能发生的情况是否都考虑了
 * 3:重复的事情,调用该方法即可
 */
//a目录下有多级文件和目录,递归删除它-------------
public class FileRecursion {

    public static void main(String[] args) {
        File file = new File("a");
        deleteFile2(file);

    }
    /**
     * 假设循环到最底层,是文件则被删除
     * 如果是个目录,File[] subs 的值为空,for循环无意义;目录被删除
     */
    public static void deleteFile(File file){
        if(file.exists()){//操作前提:文件或目录存在
            if(file.isDirectory()){//是目录,循环删除目录下的文件后,再删除该目录
                File[] subs = file.listFiles();
                for(File sub : subs){
                    deleteFile(sub);
                }
                file.delete();
            }else{//是文件,直接删除
                file.delete();
            }
        }

    }
    /**
     * 此方法与上个方法等价,代码更简洁
     * 无论是目录还是文件,都要删除
     */
    public static void deleteFile2(File file){
        if(file.exists()){//操作前提:文件或目录存在
            if(file.isDirectory()){//是目录,循环删除目录下的文件
                File[] subs = file.listFiles();
                for(File sub : subs){
                    deleteFile(sub);
                }
            }
            file.delete();//无论是目录还是文件,都要删除
        }

    }

}

//递归计算1+2+3+。。。+100=5050-------------
public class OneToHundredPlus {

    public static void main(String[] args) {
        int n = 100;
        System.out.println();
    }
    //当前的数字累加之前的数字,直到1
    public static int numPlus(int n){
        if(n<=1){
            return 1;
        }
        return n+numPlus(n-1);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值