我有一个命令行要求用户说(Y/N),这个值被传递给 checkResponse 方法。
出于某种原因,while 循环会忽略该值,即使在我调试时它显示的值为“Y”。当值设置为“N”时,它也会继续循环。如果我将 if 语句移到 while 语句下方,程序就可以正常工作。我可以发送一个初始值“Y”,while 语句将忽略它并开始运行其中的代码。
知道我错过了什么或忽略了什么吗?
提前致谢。
public void checkResponse(string response, string confirmValue)
{
Console.WriteLine(response);
Console.WriteLine(response);
if (response == "Y")
{
return;
}
else if (response == "N")
{
Environment.Exit(0);
}
else
{
while ((response != "Y") || (response != "N"))
{
Console.Clear();
Console.WriteLine("\"" + response + "\" is not a valid response.");
Console.WriteLine();
Console.WriteLine("You entered:" + confirmValue);
Console.WriteLine("Is this correct? (Y/N)");
response = Console.ReadLine().ToUpper();
}
}
}