Java中的方法递归(套娃检索)

导读:本篇文章讲解 Java中的方法递归(套娃检索),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言必读

读者手册(必读)_云边的快乐猫的博客-CSDN博客

1.什么是方法递归?

答:方法自己调用自己。

2.递归存在的问题?

答:如果没有控制好终止,会出现栈溢出 。

3.递归能干嘛?

答:在开发中用的比较少,一般都能用for语句就可以来完成了。这属于可以不用,但是不能不会的一种方法。

例子:

1.计算阶乘(例如计算5的阶层就是1*2*3*4*5) 

思路理解:比如计算5的阶层就是4组乘法,把最高阶逐第五组5渐往下寻找到最小值1。然后1*2得出的数字再传递去*3,继续传上去直到最高阶5就可以计算出来了。

package bao;
public class Test {
    public static void main(String[] args) {
        //调用返回的f方法
        System.out.println("运行结果为:"+f(5));
    }
    //计算阶层方法
    public static int f(int n){
        //判断阶层n是否为1
        if (n == 1){
            return n;
        }//层层递归到最小值1再来计算
        else {
            return f(n-1)*n;
        }
    }
}

运行结果:

运行结果为:120 

2.文件搜索(找到后还能打开指定的文件)

以打开QQ为例子(多练习就可以记住了) 

package bao;

import java.io.File;
import java.io.IOException;

public class Test {
    public static void main(String[] args) {
        //一、2.传入盘符文件和要搜索指定的文件名称
        searchFile(new File("D:\\"),"QQ.exe");
        System.out.println();
    }
    //一、1.创建一个要搜索文件的对象
    public static void searchFile(File dir,String fileName){
        //一、3.判断dir是否是目录
        if (dir!=null&& dir.isDirectory()){
            //二、可以找了
            //二、1提取当前目录下的一级文件
            File[] f = dir.listFiles();
            //二、2.判断一遍文件夹里面有没有东西才继续遍历
            if (f!=null&&f.length>0){
                //正式遍历
                for (File file : f) {
                    //二、3判断里面文件还是文件夹
                    if (file.isFile()){
                        //是文件,输出
                        if (file.getName().contains(fileName)){
                            System.out.println("找到了"+file.getAbsolutePath());
                            //三、附带技能,启动,出现异常抛出捕捉就好
                            Runtime r = Runtime.getRuntime();
                            try {
                                r.exec(file.getAbsolutePath());
                            } catch (IOException e) {
                                throw new RuntimeException(e);
                            }
                        }
                    }else {
                        //是文件夹,递归寻找(调用自己再循环来一次)
                        searchFile(file ,fileName);
                    }
                }
            }
        }else {
            System.out.println("当前搜索的不是文件夹,不支持!");
        }
    }
}

运行结果:

找到了D:\软件安装\QQ\Bin\QQ.exe

 Java中的方法递归(套娃检索)

旁白:

1. 这个方法递归主要的就是用来计算遍历的,和算法有关。开发中用到并不多。优点就是相同重复方法的一直检索可以用这个,阶乘计算等。

2.还能用来检索文件夹里面的文件位置在哪里,也可以打开文件。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/112698.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!