Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 它将在程序中返回_Java - Fatal编程技术网

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吗?因为这是整个程序的最后一行代码?为什

我想知道当一个程序中有多个返回时,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吗?因为这是整个程序的最后一行代码?为什么会这样


抱歉,如果我的措辞有点奇怪…

一旦遇到任何“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
    }
}