4

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

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

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

如果此值不等于 (!=) 到 Exit OR Test,那么它应该循环。

我在这里做错了什么?

谢谢

4

3 回答 3

4

如果您想退出循环,当用户进入时,ExitTest需要&&操作员而不是||

while ((var_app_choice != "Exit") && (var_app_choice != "Test"))
    {
        var_app_choice = Console.ReadLine();
        //stuff
    }
于 2012-10-04T05:00:36.977 回答
2

我想你想要而不是……

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

于 2012-10-04T05:01:45.677 回答
0

朋友,

考虑我有一个数据列表

List dataList = new List() { "Apple", "Microsoft", "exit", "Oracle", "Android" };

诠释 i = 0; while (dataList[i] != "exit" || dataList[i] != "test") { Console.WriteLine(dataList[i]); 我++;}

您会期望输出应该只有 Apple 和 Microsoft。当它在索引 2 中遇到“退出”时,它应该停止。

真正发生的事情(考虑它正在验证“退出”)是第一个条件失败,这意味着 NotEqualTo 运算符工作正常。问题是您的 OR 运算符。由于“exit”不等于“test”,因此条件通过,进一步进入循环。

您的数据不能等于“exit”,也不等于“test”。

认为你有问题。供您参考,While(condn){} 在这里您可以提及任何输出布尔值(真或假)的条件。

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

于 2012-10-04T05:30:05.950 回答