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