当值满足时 while 循环不退出

while loop not exiting when value met

我有一个场景,我想检查应用程序中某个单元格的值。当单元格的值达到 0 或 -1 时,我希望测试继续。所以我有:

while (!cell.Value.Equals("0") || !cell.Value.Equals("-1")) 
{
    Console.WriteLine("Value ({1})",cell_value.Value);
    Thread.Sleep(15000);
}

不幸的是,当单元格达到 0 时,它似乎没有 'break' 脱离循环。

Output:
    Value (20)
    Value (13)
    Value (10)
    Value (9)
    Value (4)
    Value (1)
    Value (0)
    Value (0)
    Value (0)
    Value (0)

最好用 while / do + while 循环试试这个还是 for 循环更好?

谢谢,

J.

你的情况大概应该是:

while (!cell.Value.Equals("0") && !cell.Value.Equals("-1"))

正如目前所写的那样,至少有一方为真(任何字符串总是不是“0”不是“-1”)。

||表示至少有一个必须为真。因此,当您输入 0 时,您得到的是:

  1. !cell.Value.Equals("0") - "not true" = false
  2. !cell.Value.Equals("-1") - "not false" = true

因此它进入了。您想改用 &&

while (!cell.Value.Equals("0") && !cell.Value.Equals("-1")) 

或者这样写:

// while not (equals 0 or -1)
while (!( cell.Value.Equals("0") || cell.Value.Equals("-1")))