我对C#很新,我正在尝试编写一个超级简单的循环
while ((var_app_choice != "Exit") || (var_app_choice != "Test"))
{
//stuff
}
我有一个控制台应用程序,最终用户将输入一个值
如果此值不等于(!=)退出或测试,那么它应该循环。
我在这里做错了什么?
由于
答案 0 :(得分:3)
如果您想退出循环,当用户输入Exit
或Test
时,您需要&&
运算符而不是||
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){}在这里你可以提到任何输出布尔值的条件(真或假)。
如果我错了,谢谢并纠正我。