Java错误:缺少return语句?

时间:2012-12-21 13:38:37

标签: java

这是我的方法:

//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。但错误说没有返回声明......我一般不熟悉方法,所以我很困惑。任何帮助将不胜感激!

6 个答案:

答案 0 :(得分:6)

如果used.length==0怎么办?然后永远不会输入for循环。

因此,循环后需要return语句。

答案 1 :(得分:2)

如果从未输入过该怎么办?即used.length == 0used是一个空数组)。在这种情况下 - 不会返回任何内容。

编译器禁止可以在不返回值的情况下终止的流,这就是它显示错误的原因。


另请注意,我相信即使在解决了这个问题之后 - 该程序也会产生错误的结果,它只会检查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'循环并在结束时返回一次。