这是我的方法:
//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。但错误说没有返回声明......我一般不熟悉方法,所以我很困惑。任何帮助将不胜感激!
答案 0 :(得分:6)
如果used.length==0
怎么办?然后永远不会输入for循环。
因此,循环后需要return
语句。
答案 1 :(得分:2)
如果从未输入过该怎么办?即used.length == 0
(used
是一个空数组)。在这种情况下 - 不会返回任何内容。
编译器禁止可以在不返回值的情况下终止的流,这就是它显示错误的原因。
另请注意,我相信即使在解决了这个问题之后 - 该程序也会产生错误的结果,它只会检查used
的第一个元素,而不会进入下一个元素。
答案 2 :(得分:2)
您应该将return false;
移到最后}
之前。否则它将在循环的第一次迭代中返回。
答案 3 :(得分:0)
/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语句,目前没有返回语句,这就是你收到错误的原因。
答案 4 :(得分:0)
当您编写代码时,该方法将始终在循环的第一次迭代时返回,而我怀疑这是您想要的。
我相信你应该在for之外返回false。我不确定“猜字母表”是什么意思,但我认为这就是你想要做的事情。
答案 5 :(得分:0)
是的,以上都是正确的。最好在顶部定义返回变量,在方法体内的任何地方将其设置为值,打破'for'循环并在结束时返回一次。