我正在尝试构建一个简单的控制台应用程序游戏,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,即使索引具有相同的值。
答案 0 :(得分:2)
您应该修改while
语句以反映所需的条件。根据说明,如果达到最大计数或用户正确猜测,则希望循环中断。即:“在不超过计数且猜出的答案不是正确答案的情况下运行循环”。会是这样的:
while ((Counter <= Max_Guess) && (Guess_Word != GuessValues))
{ ... }
当这些条件之一不再满足时,循环将自动结束。