黑马程序员技术交流社区

标题: 有返回值的递归问题 [打印本页]

作者: 李健09    时间: 2014-3-20 16:27
标题: 有返回值的递归问题
本帖最后由 李健09 于 2014-3-21 19:21 编辑

import java.io.*;
public class FileDemo3
{
public static void main(String[] args)
{
  int n=getSum(3);
  System.out.println("n="+n);
}
public static int getSum(int n)
{
  if(n==1)
   return 1;
  return n+getSum(n-1);
}
}
//问下在有返回值得递归当中 return n+getSum(n-1); 此时是直接执行调用getSum(int n)函数吗?return n+getSum(n-1)不运行吗,就是n+(n-1)运行吗?

作者: 无道    时间: 2014-3-20 21:09
会直接调用getSun(n-1)这个函数,因为它要算出n+getSun(n-1)的值后才能进行返回。当递归到n==1时getSun(int n)函数才会结束,程序就会依次返回。
作者: 李健09    时间: 2014-3-21 19:20
无道 发表于 2014-3-20 21:09
会直接调用getSun(n-1)这个函数,因为它要算出n+getSun(n-1)的值后才能进行返回。当递归到n==1时getSun(int ...

谢了 知道怎么回事了 当时有点晕了...




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