【发布时间】:2019-11-20 18:25:27
【问题描述】:
我想在while循环中使用多个条件:
Console.WriteLine("Select an action to perform\n");
int n1 = Convert.ToInt32(Console.ReadLine());
do
{
Console.WriteLine("Insert a valid method\n");
n1 = Convert.ToInt32(Console.ReadLine());
}
while ((n1 == 1) || (n1 == 2));
Console.WriteLine(n1);
Console.ReadKey();
在这里我想检查value n1 是否等于 1 或 2。直到用户输入 n1 或 2 这应该循环。问题是,如果我只使用一个条件,我可以让它工作,但当有 2 个条件时不能让它工作。另外如何将这些值与另一个字符串相等?
例如:
while ((n1 == "one") || (n1 =="two"))
我认为 || (OR) operator 有一些我不理解的地方。我阅读了一些解决方案,但我无法弄清楚。
【问题讨论】:
-
您的代码正在执行预期的操作。只要
n1等于1 或n2等于2,它就会继续循环。如果您想在用户输入 1 或 2 后停止循环,那么您需要否定您的表达式。n1 != 1 || n1 != 2或!(n1 == 1 || n1 == 2) -
将你感兴趣的值放在
HashSetbefore 循环中。然后使用Contains。这样,无论您要检查多少个值,您都可以进行一次Contains检查。 -
n1 != 1 || n1 != 2和!(n1 == 1 || n1 == 2)不等效。n1 != 1 && n1 != 2和!(n1 == 1 || n1 == 2)是
标签: c# while-loop multiple-conditions