黑马程序员技术交流社区

标题: 【广州校区】【原创】 递归 [打印本页]

作者: 新君    时间: 2019-1-23 09:51
标题: 【广州校区】【原创】 递归
1 概述
   在当前方法内部调用自己的这种现象,但必须确保这个方法调用会有结束的条件,即不能出现无限调用自己的情况。

2 使用
   需求:
           求1~num之和。
   分析:
             如果num=5的话,我们定义一个方法getSum(5)表示求1~5之和,getSum(4)表示1~4之和,以此类推,有如下结论:
             //getSum(5)                   1到5之和
             //5+getSum(4)               5 + (1到4之和)
             //5+4+getSum(3)           5 + 4 + (1到3之和)
             //5+4+3+getSum(2)       5 + 4 + 3 + (1到2之和)
             //5+4+3+2+getSum(1)   5 + 4 + 3 + (1之和)
             //5+4+3+2+1                5 + 4 + 3 + 2 + 1
   步骤:
            1定义一个static方法getSum(int num),获取1~num之和
            2在getSum(int num)方法中,如果num=1,则返回1,这就是递归的结束条件
            3如果num!=1,则调用getSum(num-1)  
            4在main方法中,调用getSum(5);
   代码:
public class Test02 {
        public static void main(String[] args) {
                //求1到5之和
                int sum = getSum(5);
                System.out.println("sum:" + sum);
        }
       
        public static int getSum(int num){
                if(num==1){
                        return 1;
                }
                return num + getSum(num-1);
        }
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2