我这里有一个简单的循环:
for (; ; )
{
if (start == end)
{
break;
}
else
{
{
if (start > end)
{
SendKeys.SendWait("{F9}");
File.WriteAllText(path, String.Empty);
createText = "bind F9 \"exec odymod\"" + Environment.NewLine;
createText = cmd + " " + start + Environment.NewLine;
File.WriteAllText(path, createText);
start = start - inc;
}
else
{
SendKeys.SendWait("{F9}");
File.WriteAllText(path, String.Empty);
createText = "bind F9 \"exec odymod\"" + Environment.NewLine;
createText = cmd + " " + start + Environment.NewLine;
File.WriteAllText(path, createText);
start = start + inc;
}
System.Threading.Thread.Sleep(20);
}
}
}
但是,我遇到了一个问题。我试图在开始 = 结束时打破循环,但是,如果 inc 是小数,那么开始永远不会真正等于结束。有没有一种方法可以让我看到它是否在该数字的设定范围内,而不是完全等于另一个数字?例如,我想看看开始是否在结束的 0.5 以内,然后中断。
要检查 start
是否在 end
的some range 内,您可以使用 Math.Abs
:
const double tolerance = 0.5;
...
if (Math.Abs(start - end) < tolerance)
break;
意思是“如果start
足够接近end
(差异的绝对值小于tolerance
然后break
循环)”。
您可以将初始的 for(;;)
循环简化为
// keep looping while start is not close enough to end
while (Math.Abs(start - end) >= tolerance) {
if (start > end) {
...
}
else {
...
}
}
我是一名优秀的程序员,十分优秀!