美文网首页JAVA
方法的定义与使用(方法递归调用)

方法的定义与使用(方法递归调用)

作者: 大鱼鱼 | 来源:发表于2017-10-05 15:01 被阅读0次

方法递归调用

  • 方法的递归调用指的是自己调用自己的形式。一般如果要进行一个方法的递归调用是要有以下几个条件的。
  1. 方法必须有一个递归的结束条件。
    2.方法在每次递归时一定要进行一些变更。

范例:实现1~100的累加操作。

public class Hello {
    public static void main(String args[]) {
        int num = 1;
        int result = 0;
        while (num <= 100) {
            result += num;
            num++;
            System.out.println(result);
        }
    }
}
这个操作可以变成递归的形式
public static void main(String args[]) {
        System.out.println(sum(100));
    }

    public static int sum(int num) {
        if (num == 1) {
            return 1;
        }
        return num + sum(num - 1);


    }
}
【main()调用】第一次执行sum()方法;return100+sum(100-1)
【sum()递归】第二次执行sum()方法;return99+sum(99-1)
【sum()递归】第三次执行sum()方法;return99+sum(98-1)
.
.
.
【sum()递归】倒数第二次执行sum()方法;return2+sum(2-1)
【sum()递归】倒数第一次执行sum()方法;return1+sum(1-1)

先调用后,返回执行就变成了1+...+100。

范例:实现60的阶乘

public class Hello {
    public static void main(String args[]) {
        System.out.println(mul(60));
    }

    public static double mul(int num) {
        if (num == 1) {
            return 1;
        }
        return num * mul(num - 1);


    }
}

- 使用while循环的操作其实大部分都可以转换成递归。








相关文章

网友评论

    本文标题:方法的定义与使用(方法递归调用)

    本文链接:https://www.haomeiwen.com/subject/zjtkyxtx.html