当值满足时 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 时,您得到的是:
!cell.Value.Equals("0")
- "not true" = false
!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")))
我有一个场景,我想检查应用程序中某个单元格的值。当单元格的值达到 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 时,您得到的是:
!cell.Value.Equals("0")
- "not true" =false
!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")))