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<used.length; x++){

    if(alphabet == used[x])
    {
        return true;
    }

    else
    {
        used[dataSize] = alphabet;
        return false;
    }
    }
}//End of usedLetters method

IT 检查用户以另一种方法输入的字母表是否已经被猜到。如果已经被猜到,则返回真,如果还没有被猜到,则将字母表添加到已使用中,并返回假。但是错误说没有返回语句...我对一般方法不熟悉,所以我很困惑。任何帮助,将不胜感激!

4

6 回答 6

6

万一used.length==0呢?然后永远不会进入for循环。

因此,您需要return在循环之后声明。

于 2012-12-21T13:41:05.313 回答
2

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

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


另请注意,我相信即使在解决了这个问题之后 - 程序也会产生错误的结果,它只会检查 的第一个元素used,而不会前进到下一个元素。

于 2012-12-21T13:40:12.537 回答
2

您应该将 移到return false;最后一个 之前}。否则它将在循环的第一次迭代中返回。

于 2012-12-21T13:40:31.180 回答
0

当您编写代码时,该方法将始终在循环的第一次迭代时返回,而我怀疑这是否是您想要的。

我相信你应该在for之外返回false。我不确定“猜测字母”是什么意思,但我认为这就是你想要做的。

于 2012-12-21T13:42:45.140 回答
0

/usedLetters 方法检查用户的猜测是否已经被猜到
private boolean usedLetters(char used[], char alphabet) 抛出 IOException
{
   for(int x=0; x

if(alphabet == used[x])
{
    return true;
}

else
{
    used[dataSize] = alphabet;
    return false;
}
}

}//usedLetters方法结束

for 循环之后应该有 return 语句,目前没有 return 语句,这就是你得到错误的原因。

于 2012-12-21T13:40:24.530 回答
0

是的,以上都是对的。您最好在顶部定义返回变量,将其设置为方法体中任何您需要的值,跳出“for”循环并在最后返回一次。

于 2012-12-21T13:44:26.157 回答