Java 返回语句应该是代码块中的最后一条指令吗?
我真的需要帮助理解不可访问语句在Java中的实际含义。我有以下内容,当我试图编译时,我得到一个无法访问的语句错误。我已经在Stackoverflow上查看了一些关于无法访问语句的类似问题,但是没有人回答我的问题。我想知道基于return语句是如何工作的,为什么这个版本不能编译Java 返回语句应该是代码块中的最后一条指令吗?,java,compilation,return,unreachable-statement,Java,Compilation,Return,Unreachable Statement,我真的需要帮助理解不可访问语句在Java中的实际含义。我有以下内容,当我试图编译时,我得到一个无法访问的语句错误。我已经在Stackoverflow上查看了一些关于无法访问语句的类似问题,但是没有人回答我的问题。我想知道基于return语句是如何工作的,为什么这个版本不能编译 public int refundBalance() { return balance; balance = 0; } 我这样问是因为这里类似的问题并没有给我答案。我猜return应该是代码块中的最后一条
public int refundBalance()
{
return balance;
balance = 0;
}
我这样问是因为这里类似的问题并没有给我答案。我猜return应该是代码块中的最后一条语句,但我对Java的知识还不够丰富,无法确定我的结论。因此,任何澄清都将不胜感激。是的,
返回
语句应该是代码块中的最后一个语句。如果不是,那么它下面的任何代码都不会被访问,因为return
语句将控制权转移到调用当前方法的方法(或者首先转移到finally
块,如果它存在的话)。在return
语句之后的块中没有编码点,因此它是不允许的。不仅return
语句指示当前函数返回的内容,还导致函数终止。因此,return
之后的语句在任何情况下都是无法访问的,并且不应该存在。return
语句导致方法退出。因此,同一代码块中return
语句之后的任何语句都将永远不会执行。这就是为什么会出现此错误。为了使此错误生效,您必须将另一个变量设置为balance,然后将balance设置为0,然后返回另一个变量 执行return语句时,您希望接下来会发生什么!?控件返回到调用程序,返回后的语句永远无法执行
看起来您确实想要实现此功能,它显然会按如下方式退还当前余额:
public int refundBalance() {
int result = balance;
balance = 0;
return result;
}
return
执行它所说的操作,它退出该方法并返回给调用方。所以return
之后的内容是不可访问的……您知道return
的作用吗<代码>余额=0将永远不会执行。放在那里绝对没有意义。