比较char []以打破While循环

时间:2018-06-27 00:44:15

标签: c#

我正在尝试构建一个简单的控制台应用程序游戏,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,即使索引具有相同的值。

1 个答案:

答案 0 :(得分:2)

您应该修改while语句以反映所需的条件。根据说明,如果达到最大计数或用户正确猜测,则希望循环中断。即:“在不超过计数且猜出的答案不是正确答案的情况下运行循环”。会是这样的:

while ((Counter <= Max_Guess) && (Guess_Word != GuessValues)) 
        { ... }

当这些条件之一不再满足时,循环将自动结束。