我在绕过递归时遇到了困难,更具体地说,是我的教科书中提供的语法。它看起来像这样:递归调用一个方法
public int sum (int num)
{
int result;
if (num == 1)
result =1;
else
result = num +sum(num -1);
return result;
}
我很困惑专门与行:
result = num + sum(num - 1);
,保持跳闸我是在任何其他程序每次一部分,我们从调用一个方法两种方式。这个方法是一个静态方法,并且通过类名跟一个句点,然后是方法名来调用。 (例如:Math.random();) 或者,该方法已通过同一类的对象引用变量进行调用。 (我们首先必须独立创建) 这个语法似乎不遵循前面两个例子中的任何一个,我想知道这是为什么?仅仅是因为我们从方法本身内部调用方法,并且在语法上它是如何完成的或者我错过了什么?
突出显示的行相当于'result = num + this.sum(num - 1);'。 –
不知道这与递归有什么关系......你可以在这个语法之后调用同一个类的任何方法* –