Когда я использую «Пока» в C #, я не хочу печатать последний расчет - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть вопрос об использовании 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 в секунду .., но sendMessage.LiftHeight показывает «..., 2,8, 2,9, 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;
    }
}

1 Ответ

0 голосов
/ 25 февраля 2019

Насколько я вижу, проблема заключается в том месте, где вы увеличиваете 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);
             }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...