我有一个场景,我想检查应用程序中单元格的值。当单元格的值达到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循环更好?
谢谢,
学家
答案 0 :(得分:2)
你的病情应该是:
while (!cell.Value.Equals("0") && !cell.Value.Equals("-1"))
正如目前所写,至少有一方是真的(任何字符串总是不是" 0" OR NOT" -1&#34 ;)
答案 1 :(得分:1)
.sqlite-wal
意味着至少有一个必须是真的。因此,当您输入0时,您得到的是:
||
- “not true”= !cell.Value.Equals("0")
false
- “not false”= !cell.Value.Equals("-1")
因此它进入。您希望改为使用true
:
&&
或者像这样写:
while (!cell.Value.Equals("0") && !cell.Value.Equals("-1"))