1

我正在为学校做一个项目,我在一个方法中有许多嵌套循环。我可以验证我的代码是否达到了“return true”;“return false;”之前的声明 使用太多 System.out.println 语句。

是否有任何情况下 return 不会立即退出该方法。在我的代码中,它达到“return true;”,但随后继续执行该方法。

谢谢 - 第一篇文章,但其他问题的长期学生

编辑:显示我的代码 - 这是针对加州大学伯克利分校的项目,所以他们不允许我们发布我们的完整代码。这是重要的部分。

我的代码中没有“尝试语句”。这是我的方法的最后,它有很多循环(while 和 for)循环。

if (x == 7 && turn == 5){
                    System.out.println("TRUE RESULT");
                    return true;


                }

                nextVictory(turn, x, y, color,z);
                alive = false;
            }

        }


          }
    }
    System.out.println("FALSE RESULT");
    return false;
}

我有打印声明来验证我在哪里。结果如下:

真实结果

错误结果

错误结果

错误结果

错误结果

4

2 回答 2

5

是否存在 return 不会立即退出该方法的情况?

唯一想到的情况是return语句是否在try-finally块内。该finally块仍将被执行。

另一种可能表现出类似行为的情况是,如果您的方法是递归的。在这种情况下,return嵌套调用中的语句实际上会返回给调用者。但是,如果调用者是方法本身,这可能会使方法看起来继续执行超过return.

于 2013-03-31T06:35:27.047 回答
0

如果您的代码到达该return true行,它必须退出该方法。所以它没有到达这条线。System.out.printlnreturn语句之间发生了一些事情。如果您显示代码,它将有所帮助。

于 2013-03-31T06:58:31.997 回答