当值达到时,循环不会退出

时间:2017-09-04 13:52:47

标签: c# for-loop while-loop coded-ui-tests

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

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

不幸的是,当单元格达到0时,它似乎没有“突破”。跳出循环。

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循环更好?

谢谢,

学家

2 个答案:

答案 0 :(得分:2)

你的病情应该是:

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

正如目前所写,至少有一方是真的(任何字符串总是不是" 0" OR NOT" -1&#34 ;)

答案 1 :(得分:1)

.sqlite-wal意味着至少有一个必须是真的。因此,当您输入0时,您得到的是:

  1. || - “not true”= !cell.Value.Equals("0")
  2. false - “not false”= !cell.Value.Equals("-1")
  3. 因此它进入。您希望改为使用true

    &&

    或者像这样写:

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