虽然或不等于不工作?

时间:2012-10-04 04:55:02

标签: c# string loops while-loop

我对C#很新,我正在尝试编写一个超级简单的循环

        while ((var_app_choice != "Exit") || (var_app_choice != "Test"))
        {
            //stuff
        }

我有一个控制台应用程序,最终用户将输入一个值

如果此值不等于(!=)退出或测试,那么它应该循环。

我在这里做错了什么?

由于

3 个答案:

答案 0 :(得分:3)

如果您想退出循环,当用户输入ExitTest时,您需要&&运算符而不是||

while ((var_app_choice != "Exit") && (var_app_choice != "Test"))
    {
        var_app_choice = Console.ReadLine();
        //stuff
    }

答案 1 :(得分:2)

我认为你想要而不是......或者

如果var_app_choice的值为“Test”,则第一个条件为真,循环将执行。同样,如果它是“退出”,则第二个条件为真。换句话说,你有一个无限循环......

答案 2 :(得分:0)

朋友,

考虑我有一个数据列表

列出dataList = new List(){“Apple”,“Microsoft”,“exit”,“Oracle”,“Android”};

int i = 0;                 while(dataList [i]!=“exit”|| dataList [i]!=“test”)                 {                     Console.WriteLine(数据列表[1]);                     我++;                 }

您可能会认为输出应该只是Apple和Microsoft。当它在索引2中遇到“退出”时,它应该停止。

真正发生的事情(认为它是验证“退出”)是第一个条件失败,这意味着NotEqualTo运算符正常工作。问题是你的OR运算符。由于“退出”不等于“测试”,条件通过并进一步进入循环。

您的数据不得等于“退出”,也不等于“测试”。

认为你遇到了问题。为了您的信息,While(condn){}在这里你可以提到任何输出布尔值的条件(真或假)。

如果我错了,谢谢并纠正我。