我有一个很大的递归方法,无法理解执行。假设我们有一个递归方法如下:
private void recursiveMethod(){
//execute some code 1
if(someValue){
recursiveMethod();
}
//execute some other code 2
}
和方案:
recursiveMethod()
someValue
真的回想起来someValue
因为错误code 2
但是在这个场景完成后,还有第二个code 2
执行 - 可能是从第一个方法运行开始,在递归方法中是正常的吗?
答案 0 :(得分:3)
是的,这是正常的。当递归调用返回时,它将在递归调用之后继续执行。如果您不想要这种行为,可以在递归调用之后返回,如下所示:
private void recursiveMethod(){
//execute some code 1
if(someValue){
recursiveMethod();
return;
}
//execute some other code 2
}
答案 1 :(得分:1)
通常在return
之后添加someValue == true
(在回忆此方法后)