gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 23:23:37 24 4
gpt4 key购买 nike

我对编码相当陌生(尤其是 C#)——这是编程基础类(class)的作业——我不是在寻找答案——我在找人解释为什么我会遇到这两个“错误”我应该创建一个 bool 方法来检查用户在刽子手游戏中对字母或完整单词的猜测。我得到的错误是 - 'Unreachable Code detected - for the idx++ part - 这没有意义,因为我在其他单独的方法中使用过它..和 Program.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;
}

}

最佳答案

您应该明白,return 语句在执行时会使控件跳出方法并返回给调用者。

在您的代码中,您的return is 语句位于for 循环内。当执行for循环的迭代时,控件立即跳出方法并返回到方法的调用者。

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

您还应该了解,每个没有 void 作为返回类型的方法都需要 return 无论如何。

如果 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;
}

关于c# - 为什么会出现这些错误? c# - 刽子手游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38287674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com