我正在编写一个程序来实现我在文献中找到的算法。 在这个算法中,我需要一个while循环;如何强制程序始终运行while循环的第一次迭代?
while(solution has changed){
updateSolution();
}
检查while条件是否满足,我创建了一个名为copy的Object(与解决方案相同)。此副本是更新解决方案之前的解决方案的副本。所以如果解决方案发生了变化,while循环中的条件就会得到满足。
不过,我有一些问题,找到两个对象作为while循环的条件下,最好的解决方案被执行,因为我开始用空的解决方案(结果集)和副本也是在那个时候空(均称为与类的构造函数)。这意味着当执行while循环时,两个对象是相等的,因此while循环中的所有语句都不会执行。
我现在的解决方案是创建一个虚拟变量,在while循环之前将其设置为true,并将其设置为false。我怀疑这是最好的解决方案,所以我想知道是否有这个问题的标准解决方案(通过某种方式来强制程序始终运行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
}
哦,好''''''''while'。所以很少使用,所以很少知道它... –
谢谢!确切地说,我确实需要什么。正如Joachim所说,我甚至不知道Java中存在这种构造。 – Maza89
@ Maza89 - 任何好的教科书都会描述它。 –