我有一个关于在c#中使用'while'的问题。我使用"时"进行了循环,但我不知道该如何制作,也没有打印最后的计算。
代码:
if (obj.ControlCommand == 2)
{
try
{
while (obj.LiftHeight > sendMessage.LiftHeight)
{
sendMessage.LiftStatus = 12;
sendMessage.LiftHeight += 0.1f;
Thread.Sleep(1000);
if (sendMessage.LiftHeight >= obj.LiftHeight)
{
sendMessage.LiftStatus = 0;
sendMessage.LiftHeight = obj.LiftHeight;
}
}
当我将obj.Liftheight设置为2.95时,它将每秒0.1增加到0.1,但sendmessage.liftheight显示为'...,2.8,2.9,3.0,3.0,2.95,2.95 ...'。我想制作'...,2.8、2.9、2.95、2.95 ...'我应该更改它吗?
while (obj.LiftHeight < sendMessage.LiftHeight)
{
sendMessage.LiftStatus = 12;
sendMessage.LiftHeight -= 0.1f;
Thread.Sleep(1000);
if (sendMessage.LiftHeight <= obj.LiftHeight)
{
sendMessage.LiftStatus = 0;
sendMessage.LiftHeight = obj.LiftHeight;
}
}
对于我所看到的,问题在于您正在增加sendMessage.LiftHeight
的位置。您应该检查它是否在增加之前会过高。将代码更改为
if (obj.ControlCommand == 2)
{
try
{
while (obj.LiftHeight > sendMessage.LiftHeight)
{
if (sendMessage.LiftHeight + 0.1f >= obj.LiftHeight)
{
sendMessage.LiftStatus = 0;
sendMessage.LiftHeight = obj.LiftHeight;
}
else
{
sendMessage.LiftStatus = 12;
sendMessage.LiftHeight += 0.1f;
Thread.Sleep(1000);
}
}