我正在尝试建立一个简单的控制台应用程序游戏,Hangman!我有一个while循环,它在计数器不等于最大猜测次数时重复,但是,我希望当满足两个条件之一时,循环中断并结束程序,计数器等于最大猜测次数,或者当用户猜测单词时。
下面是我的一些代码:
char[] Guess_Word = "ab".ToLower().ToArray();
char[] GuessValues = new char[Guess_Word.Length];
//run while loop to display message instructions
while ((Counter != Max_Guess) || (Guess_Word == GuessValues))
{
Console.Write("\n\nEnter a letter: ");
Letter = Char.ToLower(Convert.ToChar(Console.ReadLine()));
//testing to see if the letter is in word
if (Guess_Word.Contains(Letter))
{
Console.WriteLine("You've guessed correctly!");
for (var i = 0; i < Guess_Word.Length; i++)
{
if (Letter == Guess_Word[i])
{
GuessValues[i] = Guess_Word[i];
}
}
Correct_Guess++;
Console.WriteLine(GuessValues);
}
else
{
Console.WriteLine("You've guessed incorrectly!");
Console.WriteLine(GuessValues);
Incorrect_Guess++;
}
Counter++;
}
while循环中的第二个条件语句始终为false,即使两个索引具有相同的值。
发布于 2018-06-27 09:16:48
您应该修改while
语句以反映所需的条件。根据解释,如果达到最大计数或用户猜对了,您希望循环中断。也就是说:“在没有超过计数的情况下运行循环,并且猜测的答案不正确”。它应该是这样的:
while ((Counter <= Max_Guess) && (Guess_Word != GuessValues))
{ ... }
当不再满足这些条件之一时,循环将自动结束。
https://stackoverflow.com/questions/51053074
复制相似问题