为什么会出现这些错误?c#-刽子手游戏

为什么会出现这些错误?c#-刽子手游戏,c#,C#,我对编码(特别是c#)相当陌生-这是一个编程基础课的作业-我不是在寻找答案-我在找人解释为什么我得到这两个“错误”是因为我应该创建一个布尔方法来检查用户在hangman游戏中对字母或完整单词的猜测。 对于idx++部分,我得到的错误是“检测到无法访问的代码”,这没有意义,因为我在其他单独的方法中使用了它。。 CheckGuess(char[],char[],char[],string):并非所有代码路径都返回值 我知道我还没有完全完成这方面的工作。它可能正盯着我的脸看——只是想寻求一些指导。谢谢

我对编码(特别是c#)相当陌生-这是一个编程基础课的作业-我不是在寻找答案-我在找人解释为什么我得到这两个“错误”是因为我应该创建一个布尔方法来检查用户在hangman游戏中对字母或完整单词的猜测。 对于idx++部分,我得到的错误是“检测到无法访问的代码”,这没有意义,因为我在其他单独的方法中使用了它。。 CheckGuess(char[],char[],char[],string):并非所有代码路径都返回值

我知道我还没有完全完成这方面的工作。它可能正盯着我的脸看——只是想寻求一些指导。谢谢

static bool CheckGuess(char[] secrets, char[] mask, char[] letters, string guess)
{ 
    int misses = 0; bool condition = false;

    for (int idx = 0; idx < secret.Length; idx++)
    {
        guess.ToCharArray();
        if (mask[idx] == guess[idx])
        {
            //reveal character or word
            condition = true;
        } 
        else
        {
            misses = misses + 1;
            condition = false;
        }
        return condition;
    }

 }
static bool CheckGuess(字符[]秘密,字符[]掩码,字符[]字母,字符串猜测)
{ 
整数未命中=0;布尔条件=假;
for(intidx=0;idx
因为您有一个
return
语句


当到达
for
循环中的
return
时,程序跳出循环,从而使
i++
无法访问。

您应该理解执行
return
语句时,会使控件跳出方法并返回调用方

在代码中,
return
is语句被放置在for循环中。当for循环的迭代被执行时,控件立即跳出方法并返回给方法的调用方

正如您所知,for循环头(
idx++
)中的最后一部分是在迭代完成后执行的。但是,在您的情况下,迭代永远不会完成,因为当控件到达
return
时,它只是跳回调用方。这就是发生第一个错误的原因

您还应该了解,每个不具有作为返回类型的
void
的方法都需要
返回
,无论发生什么情况

那么,如果for循环的条件(中间部分)从来都不是
true
?for循环永远不会执行,对吗?如果for循环没有执行,那么方法应该返回什么

该错误表示并非所有代码路径都返回值,因为如果不执行for循环,该方法将不会返回

要解决此问题,只需将
return
语句移出for循环:

static bool CheckGuess(char[] secrets, char[] mask, char[] letters, string guess)
{ 
    int misses = 0; bool condition = false;

    for (int idx = 0; idx < secret.Length; idx++)
    {
        guess.ToCharArray();
        if (mask[idx] == guess[idx])
        {
            //reveal character or word
            condition = true;
        } 
        else
        {
            misses = misses + 1;
            condition = false;
        }
    }
    return condition;
 }
static bool CheckGuess(字符[]秘密,字符[]掩码,字符[]字母,字符串猜测)
{ 
整数未命中=0;布尔条件=假;
for(intidx=0;idx
该死!!!总是很小的事情!嘎!谢谢-这解决了两个问题…说真的,谢谢。现在是时候休息很长时间了。我总是很小的事情-啊-但是谢谢你的解释。我确实知道-但是出于一些可笑的原因,我认为我的返回语句已经超出for循环了…耶啊,该休息了。再次感谢你!