Java布尔方法:无法访问的语句

时间:2018-01-14 21:12:53

标签: java arrays methods boolean

我想检查数组中是否没有元素。

private Player[] players = new Player[maxPlayers];

public boolean activePlayer(){
    for(int i = 0; i < players.length; i++){
        if(players[i] != null) {
            return true;
            break;
        }
    }
    return false;
}

ItelliJ用break;消息标记unreachable statement红色。这是什么意思,我该如何解决这个问题?

5 个答案:

答案 0 :(得分:0)

return之前的break语句将立即结束该方法,因此永远不会达到break

答案 1 :(得分:0)

我们使用return 将值返回给调用方法,因此一旦控件进入if块,值true将返回调用方法因此永远不会达到break

简而言之,return结束当前方法的执行,将值返回调用者

答案 2 :(得分:0)

仔细考虑程序的串行行为,一次一行。如果它超过条件语句,它将返回return语句。在Java中,return terminates a function, returning control to the calling function and potentially returning a value as well。断线永远不会被触及!

这可能有助于您了解Java程序中的控制流程:http://www.dickbaldwin.com/java/Java026.htm

如果您添加有关您希望程序执行的内容的更多信息/您对break语句的期望,我们很乐意为您提供帮助!

答案 3 :(得分:0)

简单来说,如果第一个if条件为真,那么它只会转到&#34;返回true;&#34;并退出...如果它没有进入If块,那么它将继续循环并结束于&#34;返回false;&#34;所以是的,intelJ是对的。它永远不应该来到&#34;休息;&#34;

返回true;实际上会为你做休息,你不需要明确地做,它会回到你调用函数的地方&#34; activePlayers()&#34;

如果您解释为什么要添加休息时间,我们可能会为您提供进一步的帮助

答案 4 :(得分:0)

好吧,在Java中,按顺序返回函数中的值: 1.停止执行函数内部的代码 2.返回函数中的值

ItelliJ是一个非常活泼,聪明的&#34;代码检查器,告诉你什么时候出错或有错误。 它给你错误,&#34;无法访问的声明&#34;因为&#34;休息&#34;语句永远不会被执行,因为当你返回&#34; true&#34; ...(回头看答案的第一部分)...... break语句永远不会被执行。

因此它是一个“无法到达的”#34;在任何情况下都不会执行的声明。