Как заставить программу всегда запускать первую итерацию цикла в то время как?

Я пишу программу для реализации алгоритма, который я нашел в литературе. В этом алгоритме мне нужен цикл While While;

while(solution has changed){
    updateSolution();
}

, чтобы проверить, выполняется ли выполнение условия времени, я создал объект (одного типа, что и решение), называемого копией. Эта копия представляет собой копию решения до обновления решения. Поэтому, если в растворе было изменение, состояние в цикле пока выполняется.

Тем не менее, у меня возникли проблемы с нахождением лучшего решения для условий обоих объектов, так как цикл Whicow выполняется, поскольку я начинаю с пустого решения (результатов), а копия также пуста в том времени (оба называются конструктор класса). Это означает, что когда цикл Whicle выполняется, оба объекта равны и, таким образом, все утверждения в цикле пока не выполняются.

Мое решение на данный момент состоит в том, чтобы создать фиктивную переменную, которая устанавливается на TRAGE перед циклом While, и устанавливается на ложь в нем. Я сомневаюсь, что это лучшее решение, поэтому мне интересно, если есть стандартное решение этой проблемы (какой-то способ заставить программу всегда запускать первую итерацию цикла While)?

код, как это сейчас :

SolutionSet solution = new SolutionSet();
SolutionSet copy = new SolutionSet();
boolean dummy = true;

while((!solution.equals(copy)) || dummy){
   dummy = false;
   copy = solution.copy();
   solution.update() // here some tests are done and one object may be added to solution
}
6
задан user 27 March 2012 в 07:37
поделиться