Java 使用方法中声明的相同方法?

Java 使用方法中声明的相同方法?,java,methods,return-value,Java,Methods,Return Value,因此,我一直在学习我的上一次考试,遇到了一个问题,它问如果num=7,返回值是多少?将其插入BlueJ告诉我16,func1如何使其成为16?如何在方法中再次使用声明的方法?我搜索了一下,但很难找到这个确切的例子,因为它都是正常使用方法得到的 谢谢 public int func1(int num) { if ( num <= 2 ) return 1; return func1(num – 2) + num; } public int func1(int num) { 如果(

因此,我一直在学习我的上一次考试,遇到了一个问题,它问如果num=7,返回值是多少?将其插入BlueJ告诉我16,func1如何使其成为16?如何在方法中再次使用声明的方法?我搜索了一下,但很难找到这个确切的例子,因为它都是正常使用方法得到的

谢谢

public int func1(int num) 
{
  if ( num <= 2 ) return 1;
  return func1(num – 2) + num;
}
public int func1(int num)
{
如果(Num 

这是调用的),最好的方法是在调试器中观察它,并考虑调用序列将如何终止(即为什么它不无限期地调用它)。


(很抱歉,因为这与家庭作业/考试有关,所以没有给出完整答案)

这是对正在使用它的同一函数的递归调用

因此,
func1(num-2)
将使用
num=num-2
调用相同的函数-
public int func1(int-num)
,直到
num>=2

因此,递归如下所示:-

func(n)
   calls func(n-2)
      calls func(n-4)
         .. so on
         calls func(1)
            returns 1
         returns 1 + 3 + ... + (n - 4)
      returns 1 + 3 + ... + (n - 4) + (n - 2) 
   returns 1 + 3 + ... + (n - 4) + (n - 2) + n
更新:-概括上述递归,让您了解其工作原理

你可以这样做:-

你想看的东西(特别是你的考试)叫做


函数使用不同的参数值调用自己,直到满足内部条件。

好吧,这就是全部内容。方法被递归调用,直到满足某个退出条件。在您的例子中,退出条件是当方法参数值达到的值时,为了理解递归,yo你必须首先理解递归


您可以找到一个很好的解释。

如何在方法中再次使用声明的方法

答:在被调用的方法中调用相同的方法

可以不使用循环递归

public int func1(int num) {
        int res=1;
        while(num >= 2 ) {
            res += num;
            num = num-2;
        }
        return res;
    }

但是递归是代码重用最重要的功能之一,当您使用树、层次结构等时,

…或者在函数的开头打印变量的值。是的,16对于num=7是正确的。谢谢,是时候去研究一些递归了。不过很有意义。谢谢大家/@user1782493。您应该试着理解发生了什么这是递归过程的幕后工作。这样你就更容易写出递归代码。我很失望你没有再次直接链接到这个答案