c# - while 语句忽略响应值

标签 c# command-line if-statement while-loop console-application

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

最佳答案

OR 更改为 AND 逻辑运算符:

(response != "Y") && (response != "N")

关于c# - while 语句忽略响应值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11650595/

相关文章:

c# - Asp.net 核心 - 没有这样的表 : AspNetUsers

python - 在不同文件夹中执行命令行

linux - 在 CentOS 中跟踪多个文件

java - 在 Java 运行时评估代码

arrays - 如何在unix中找到数组中的最后一个元素?

java - 如果其中一个输入错误,则额外运行一次循环

c# - 套接字连接的字符编码问题

c# - 从对象数组中检索属性数组

Linux "join"命令无法正常工作?

c# - 为什么禁用按钮会删除其背景颜色?