Java初学者问题:可以在自己内部调用一个方法吗?

Moh*_*din 1 java recursion

我今天参加了一个考试,有一个问题,我真的不记得确切的代码.

但是我记得在里面method exampleMethod(int num)有一行在方法中调用方法本身.

我想知道一个方法可以自己调用吗?因为这是一个多项选择题,他们希望我们找到输出.

我希望我的问题很明确.

谢谢SOF :)

hvg*_*des 15

当然可以.当你这样做时,它被称为递归.请注意,您有退出条件或者您将获得堆栈溢出.

例如

int iAmRecursive(int num) {
   if (num > 10) // break out at some condition; i.e. don't recurse
       return num; // return so the recursion doesn't continue

   iAmRecursive(num + 1); // I didn't break out, so continue to recurse.
}
Run Code Online (Sandbox Code Playgroud)

编辑 - 这是相同的例子,但有不同的突破,以赞美@Ted的评论

int iAmRecursive(int num) {
   if (num <= 10) // only continue under certain condition
       iAmRecursive(num + 1); 

   // When I get here, I implicitly break out by not recursing.
}
Run Code Online (Sandbox Code Playgroud)

但是我更喜欢始终尽可能明确,所以如果可能的话,我会在第一个例子中明确地突破.

  • +1使用"堆栈溢出"(以及正确的答案). (3认同)
  • @ted,是的,我无法抗拒;) (2认同)