Java 它将在程序中返回
我想知道当一个程序中有多个返回时,java程序将返回什么Java 它将在程序中返回,java,Java,我想知道当一个程序中有多个返回时,java程序将返回什么 private int numberReturner() { if (a) return a; else if (b) return b; for (int i = 1; i < board.size()-1; i++) { if (c) return c; } return d; } 假设a是真的,它应该返回a,但它不会返回d吗?因为这是整个程序的最后一行代码?为什
private int numberReturner()
{
if (a) return a;
else if (b) return b;
for (int i = 1; i < board.size()-1; i++)
{
if (c) return c;
}
return d;
}
假设a是真的,它应该返回a,但它不会返回d吗?因为这是整个程序的最后一行代码?为什么会这样
抱歉,如果我的措辞有点奇怪…一旦遇到任何“return”语句,该方法将退出执行并返回该值
只有在到达最后一行之前没有遇到其他return语句时,该方法才会返回d。如果已经返回,则永远不会返回后续的返回。该方法返回a,因为return语句从当前方法退出,控制流返回到调用该方法的位置。请阅读Java教程中有关不同分支关键字的更多信息 执行return语句后,方法结束,如果不是void,则返回返回值 我只知道这条规则有一个例外,你可以在finally语句中找到它。 举个例子:
public static void main(String[] args) {
System.out.println(test());
}
private static int test() {
try {
return 1;
} finally {
return 2;
}
}
在本例中,test返回2,因为本例中的finally语句总是在退出方法之前执行。当前执行线程将在第一次遇到return语句时离开一个方法。此规则的显著例外是try…finally块,一旦遇到返回,finally{…}块在离开方法之前执行。通常,遇到的第一个返回将是返回的。但是如果在finally块中遇到return语句,那么将返回finally块中的return。 e、 g
你可以随时运行/调试来检查它,这是显而易见的。你在哪里弄糊涂了?好的,谢谢你,我会确保在10分钟内回答这个问题:绝对-很高兴我能帮助澄清!
private int m1(){
try{
return 1;
}finally{
return 2; //this will be returned instead
}
}