而声明忽略响应值

sna*_*lex 1 c# command-line if-statement console-application while-loop

我有一个命令行要求用户说(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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

tob*_*s86 11

从更改ORAND逻辑运算符:

(response != "Y") && (response != "N")
Run Code Online (Sandbox Code Playgroud)