A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jagon 中级黑马   /  2014-3-12 11:21  /  546 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

递归调用         递归操作指的是方法自己调用自己的形式,但是在进行递归操作的时候必须满足如下的几个条件:
                   · 必须有结束条件;
                   · 每次调用的时候都需要改变传递的参数。
范例:完成一个1 ~ 100的累加
public class Hello {
         public static void main(String args[]) {
                   int sum = 0 ;
                   int x = 1 ;
                   while( x <= 100 ) {
                            sum += x ;
                            x ++ ;
                   }
                   System.out.println(sum) ;
         }
}
         几乎所有的while循环都可以改变为递归操作。
范例:递归操作
public class Hello {
         public static void main(String args[]) {
                   System.out.println(add(100)) ;
         }
         public static int add(int num) {
                   if (num == 1) {   // 结束条件
                            return 1 ;    // 不再向后继续加了
                   }
                   return num + add(num - 1) ;  // 修改参数内容
         }
         // 1次调用:return 100 + add(99)
         // 2次调用:return 100 + 99 + add(98)
         // 倒数第2次调用:return 100 + 99 + ... + 3 + add(2) ;
         // 最后一次调用:return 100 + 99 + ... + 3 + 2 + 1 ;
}
         对于递归操作,现在只要求可以理解这个含义即可,而在实际的工作之中,递归尽量少去使用,因为使用不当,就可能造成内存溢出。

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1 其实递归是效率最低的,这才是最主要的原因.

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马