我正在写一个程序来实现我在文献中发现的算法。在此算法中,我需要一个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
}
使用do {} while (condition);
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句