当前位置: 首页 > 面试题库 >

突破Java的递归

蔚元明
2023-03-14
问题内容

递归是一种“分而治之”的样式,它在变小的同时会拆分(Tree数据结构),如果发现违规,我希望它完全中断,这意味着中断所有递归路径并返回true。这可能吗?


问题答案:

您可以返回错误代码,或修改一些全局变量,以便每个递归实例都知道可以“杀死自己”。

某种东西。

int foo(bar){
     int to_the_next;

      if (go_recursive){
            to_the_next = foo(whisky_bar);

            if (to_the_next ==DIE) return DIE;
      }

      if (something_unexpected_happened) return DIE;

      process;//may include some other recursive calls, etc etc
}


 类似资料:
  • 我正在创建一个突破游戏,我之前在这里问了一个问题,但没有提出解决方案。我有一个简单的物理过程来反转球与桨碰撞时的速度。但我需要实现一个更先进的物理系统,例如,当球击中桨的左侧和右侧时,等等。。。但我该如何计算碰撞后球的方向呢?突破的标准是在与球拍左侧碰撞时将球指向左侧,如果碰撞是向右的,则指向右侧,等等。。。 我如何计算在哪里击球?我有很多变量可以使用,比如桨叶的各个方面(宽度、高度、X位置)、球

  • 问题内容: 在我的代码中,我有一个for循环,迭代一个代码方法,直到满足for条件为止。 反正有没有打破这个for循环? 因此,如果我们看下面的代码,如果我们想在达到“ 15”时打破这个for循环,该怎么办? 我尝试了以下无济于事: 我尝试了一个循环: 我可以实现我想要的唯一方法是打破for循环,我不能暂时将其替换,如果要使用if语句。 编辑: 仅作为示例提供了此代码,这不是我试图将其实现的代码。

  • 我目前正在通过斯坦福大学的编程方法论(2008)课程学习Java。我正在试图创建游戏突破,并试图目前动画桨,这是一个GRect类型的对象。这是我的代码: 问题是,如果我用鼠标移动拨片,它会很好地跟随,比我用键盘移动它要流畅得多。改变移动()方法中的值只会改变拨片移动的速度。 我尝试过谷歌搜索,人们做的一件事是逐渐增加和减少划桨移动的速度,但我不确定如何通过这个库正确实现这一点。以下是我的尝试: 在

  • 问题内容: 我有一个像这样的嵌套循环构造: 现在如何摆脱两个循环?我看过类似的问题,但没有一个是Java特有的。我无法应用这些解决方案,因为大多数使用的gotos。 我不想将内部循环使用其他方法。 我不想重新运行循环。中断时,我完成了循环块的执行。 问题答案: 像其他答复者一样,我绝对希望将循环放入另一种方法中,此时你可以返回以完全停止迭代。该答案仅显示了如何满足问题中的要求。 你可以将break

  • 问题内容: 我有以下简单代码可从控制台读取所有输入: 该代码是可行的。我想做的是摆脱if子句。在我对文档的理解中,如果一行为空,则应返回false,因此会跳出循环。 扫描将扫描程序前进到下一个令牌,然后可以通过Bytes或Text方法使用该令牌。当扫描停止时(到达输入末尾或发生错误),它返回false。在Scan返回false之后,Err方法将返回在扫描过程中发生的任何错误,除非是,则Err将返回

  • 问题内容: Java中的关键字可用于中断循环或switch语句。有什么可以用来打破方法的吗? 问题答案: 使用关键字退出方法。 从上面链接到的Java教程: 任何声明为void的方法都不会返回值。它不需要包含return语句,但是可以这样做。在这种情况下,可以使用return语句从控制流块中分支出来并退出该方法,其用法如下: