Как добраться до максимального значения перед выполнением кода в C #? - PullRequest
0 голосов
/ 23 марта 2012

У меня есть эта проблема программирования, я использую C #. Я хочу проверить, если varA меньше 8, а затем выполнить код, который уменьшает значение, как это

//intial
float varA = 0.0f;

if(varA <= 8.0f){

varA -= 2.0f;

}

Этот код работает нормально, но проблема в том, что если varA меньше 8, я хочу сначала увеличить его до 8, затем начать уменьшаться.

Например, если varA равно 6, его следует увеличить до 8, а затем начать уменьшаться. Надеюсь, вы поняли, что я имею в виду. Спасибо.

Ответы [ 5 ]

4 голосов
/ 23 марта 2012

Вам нужен флаг, чтобы указать, когда начинать выполнение кода вычитания.

Boolean doIt = false;

// your outer loop
{
  if (varA ==8.0f) {
    doIt = true;
  }

  if ((doIt) && (varA <= 8.0f)) {
    varA -= 2.0f;
  }
}

Конечно, главная проблема, описанная выше, состоит в том, что происходит, если varA равен 9.0. В этом случае оно не уменьшится, но это может иметь или не иметь значения для вас.

0 голосов
/ 23 марта 2012

Я предполагаю, что вы пытаетесь сделать это в бесконечном цикле.

bool localMaximumReached = false;    
        while (true)
        {
            if (varA < 8.0f)
            {
                if (!localMaximumReached)
                {
                    varA += 1.0f;
                    if (varA >= 8.0f)
                        localMaximumReached = true;
                }
                else
                    varA -= 2.0f;
            }
            else
                break;
         }
0 голосов
/ 23 марта 2012

Вы имеете в виду ...

if(varA <= 8.0f){
    // do stuff with varA being 8.0 eg
    myFunc(varA);
    varA -= 2.0f;
}
0 голосов
/ 23 марта 2012

Не уверен, что я правильно понял вопрос,

varA = varA >= 8.0 ? varA -= 2.0f : varA += 2.0f;
0 голосов
/ 23 марта 2012

Вы правы - ваш вопрос немного сбивает с толку. Похоже, вам нужен простой if / else:

if(varA <= 8.0f) {
    varA -= 2.0f;
}
else {
    varA += 2.0f;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...