我想检查数组中是否没有元素。
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
红色。这是什么意思,我该如何解决这个问题?
答案 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;在任何情况下都不会执行的声明。