当我在 C# 中使用 'While' 时,我不想打印最后一个计算



我有一个关于在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);
             }
        }

最新更新