0

我真的需要帮助来理解无法访问的语句在 Java 中的实际含义。我有以下内容,当我尝试编译时,我得到一个无法访问的语句错误。我在 Stackoverflow 上查看了一些关于 unreachable statements here 的类似问题,但没有人回答我的问题。我想根据 return 语句的工作原理来了解为什么此版本无法编译。

public int refundBalance()
{
    return balance;
    balance = 0;
}

我问这个是因为这里的类似问题没有给我答案。我猜测 return 应该是代码块中的最后一个语句,但我对 Java 的了解不够,无法确定我的结论。因此,任何澄清将不胜感激。

4

5 回答 5

1

是的,一条return语句应该是代码块中的最后一条语句。如果不是,那么它下面的任何代码都不会被访问,因为该return语句将控制转移到调用当前方法的方法(或者finally首先转移到一个块,如果它存在的话)。在语句之后的块中编码是没有意义的return,所以它是不允许的。

于 2014-05-07T23:50:14.497 回答
1

当 return 语句被执行时,你期望接下来会发生什么!?控制权返回给调用程序,return 之后的语句永远无法执行。

看起来你真的很想实现这个功能,它显然会退还当前余额,如下所示:

public int refundBalance() {
    int result = balance;
    balance = 0;
    return result;
}
于 2014-05-08T00:05:37.090 回答
0

该语句不仅return规定了当前函数返回的内容,还导致函数终止。因此,后面的语句return在任何情况下都确实是不可达的,不应该存在。

于 2014-05-07T23:50:56.293 回答
0

​该return语句导致方法退出。因此return,在同一代码块中的语句之后的任何语句都将永远不会被执行。这就是您收到此错误的原因。

于 2014-05-07T23:57:46.010 回答
0

为了使其工作,您必须将另一个变量设置为 balance,然后将 balance 设置为 0,然后返回另一个变量。

于 2014-05-08T00:00:38.860 回答