我正在为学校做一个项目,我在方法中有很多嵌套循环。我可以验证我的代码是否达到“返回true”;在“返回虚假”之前的陈述使用太多的System.out.println语句。
是否存在返回不立即退出方法的情况。在我的代码中它达到“return true;”,但随后继续使用该方法。
谢谢 - 第一篇文章,但其他问题的长期学生
编辑:显示我的代码 - 这是针对加州大学伯克利分校项目的,所以他们不允许我们发布我们的完整代码。这是重要的部分。我的代码中没有“try语句”。这是我的方法的最后一个,它有大量的循环(而& 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;
}
我有打印声明来验证我在哪里。结果如下:
正确结果
错误结果
错误结果
错误结果
错误结果
答案 0 :(得分:4)
有没有返回不立即退出方法的情况?
我想到的唯一情况是return
语句是否位于try
- finally
块内。 <{1}}块仍然会被执行。
另一种可能表现出类似行为的情况是你的方法是递归的。在这种情况下,嵌套调用中的finally
语句实际上将返回给调用者。但是,如果调用方是方法本身,则可能会使方法的外观继续执行return
。
答案 1 :(得分:0)
如果您的代码到达return true
行,则必须退出该方法。所以它没有达到这条线。 System.out.println
和return
语句之间发生了一些事情。如果您显示代码,它会有所帮助。