выполнить инструкцию только один раз в цикле do while в Java - PullRequest
1 голос
/ 15 мая 2010

в Java, как мы можем выполнить инструкцию только один раз в цикле do while

do{
    int param;

    //execute this onty one time (depends of param)
    //other instructions instructions

}while(condition)

спасибо

Ответы [ 5 ]

5 голосов
/ 15 мая 2010

Размещение оператора, который вы хотите выполнить только один раз, является одним из способов сделать это, но, конечно, это предполагает, что оператор приходит в конце или в начале цикла и не зависит от условий того, что происходитв цикле (до или после).Если у вас есть что-то вроде этого:

do {
  // do some stuff
  // one time condition
  // do some more stuff
} while(condition);

, вы не сможете легко вытащить эту информацию за пределы цикла.Если это ваша проблема, я бы предложил разместить какое-то условие вокруг одноразовых операторов и обновить условие после выполнения оператора.Как то так:

boolean hasRun = false;
do {
  // do some stuff
  if(!hasRun) {
    // one time condition
    hasRun = true;
  }
  // do some more stuff
} while(condition);
2 голосов
/ 15 мая 2010

Как насчет:

// one-time-code here

do
{
}
while ( condition );
1 голос
/ 15 мая 2010

Размещение оператора вне любых циклов приведет к его выполнению только один раз при каждом вызове метода.

0 голосов
/ 15 мая 2010

Предполагая, что вы хотите сохранить код внутри цикла (другие авторы предложили очевидное решение для перемещения кода снаружи!), Вы можете рассмотреть возможность использования флага для его выполнения только один раз:

boolean doneOnce=false;

do{

  if (!doneOnce) {

    \\execute this only one time

    doneOnce=true;
  }

  \\other instructions instructions

} while (condition)

Может быть полезной конструкцией, если, например, у вас были другие инструкции в цикле перед однократным кодом.

0 голосов
/ 15 мая 2010

Переместите оператор, который вы хотите выполнить, только один раз за пределы цикла while.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...