无法获取while循环以检查我的用户输入是否等于一些数字

时间:2018-09-29 16:39:03

标签: c# loops

这是我正在谈论的代码。所以我希望用户只能写1或2,否则while循环永远不会中断。问题是,由于某种原因,即使我写1或2,循环也不会中断。

n^3

2 个答案:

答案 0 :(得分:2)

caseSwitch在任何时候都只有一个值,因此它将始终不是1或不是2。将||替换为&&。意味着只要caseSwitch不为1也不为2,就循环播放。一旦停止,循环就停止。

while (caseSwitch != 1 && caseSwitch != 2)
{
    Console.Write("Please write a number: ");
    Int32.TryParse(userInput = Console.ReadLine(), out caseSwitch);
}

答案 1 :(得分:0)

注意:使用De Morgan's law可以解决此问题。

while (!(caseSwitch == 1 || caseSwitch == 2))
{
     Console.Write("Please write a number: ");
     Int32.TryParse(userInput = Console.ReadLine(), out caseSwitch);
}