黑马程序员技术交流社区

标题: 递归调用 [打印本页]

作者: jagon    时间: 2014-3-12 11:21
标题: 递归调用
递归调用         递归操作指的是方法自己调用自己的形式,但是在进行递归操作的时候必须满足如下的几个条件:
                   · 必须有结束条件;
                   · 每次调用的时候都需要改变传递的参数。
范例:完成一个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 ;
}
         对于递归操作,现在只要求可以理解这个含义即可,而在实际的工作之中,递归尽量少去使用,因为使用不当,就可能造成内存溢出。





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