显示随机字母 -> 打印此字母 -> count++,如果没有,则 count = 0。但是输入正确的字母后,count 被赋值为 0 为什么?似乎它应该工作。
static void EngTest(){
Console.Clear();
char[] eng = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
Random random = new Random();
int count = 5;
int max = 0;
while (true){
Console.Clear();
Console.WriteLine(count);
string word = Convert.ToString(eng[random.Next(0, eng.Length)]);
Console.WriteLine(word);
if (Console.ReadKey().Key != ConsoleKey.Escape){
string wordTyped = Console.ReadLine();
if (String.Equals(wordTyped, word) == true){
count++;
if (max <= count){
max = count;
}
}
else{
count = 0;
}
}
else{
Console.WriteLine($"aCount: {count}\nMax wins: {max}");
break;
}
}
}
在我看来,错误在于这些行。
if (Console.ReadKey().Key != ConsoleKey.Escape){
string wordTyped = Console.ReadLine();
if (String.Equals(wordTyped, word) == true){
count++;
Console.ReadKey().Key
吃输入,如果你想确保 - 这样做Console.ReadKey(true).Key
,你就会停止看到输入的第一个字符。而 in
wordTyped
y 是空的,因为它ReadLine()
只能计数Enter
。使用调试,设置断点,单步执行代码。这是修复此类错误的最佳方法。