JAVA

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

2017-10-05  本文已影响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循环的操作其实大部分都可以转换成递归。








上一篇 下一篇

猜你喜欢

热点阅读