[英]Java error: missing return statement?
这是我的方法:
//usedLetters method to check if user's guess has already been guessed
private boolean usedLetters(char used[], char alphabet) throws IOException
{
for(int x=0; x<used.length; x++){
if(alphabet == used[x])
{
return true;
}
else
{
used[dataSize] = alphabet;
return false;
}
}
}//End of usedLetters method
IT会检查用户是否已经猜到了用另一种方法输入的字母。 如果已经猜到,则返回true;如果尚未猜到,则将字母添加到used中,并返回false。 但是错误表明没有返回语句...我一般不熟悉方法,因此感到困惑。 任何帮助,将不胜感激!
如果used.length==0
怎么办? 然后,永远不会输入for循环。
因此,循环后需要一个return
语句。
如果从未输入for怎么办? 即used.length == 0
( used
是一个空数组)。 在这种情况下-将不会返回任何内容。
编译器禁止在不返回值的情况下可以终止的流,这就是为什么它会显示错误。
另请注意,我相信即使更正了此问题,该程序也会产生错误的结果,它将仅检查used
的第一个元素,而不会前进到下一个元素。
您应该将return false;
到最后一个}
。 否则它将在循环的第一次迭代中返回。
/usedLetters method to check if user's guess has already been guessed
private boolean usedLetters(char used[], char alphabet) throws IOException
{
for(int x=0; x
if(alphabet == used[x])
{
return true;
}
else
{
used[dataSize] = alphabet;
return false;
}
}
} // usedLetters方法的结尾
for循环后应该有return语句,当前没有return语句,这就是为什么您会出错。
在编写代码时,该方法将始终在循环的第一次迭代中返回,但我怀疑这是您想要的。
我相信您应该在for之外返回false。 我不确定“猜测字母”是什么意思,但我认为这是您要尝试的做法。
是的,以上所有都是正确的。 您最好在顶部定义return变量,将其设置为方法主体内任何需要的值,突破“ for”循环,最后将其返回一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.