如何强制程序始终运行while循环的第一次迭代?

前端之家收集整理的这篇文章主要介绍了如何强制程序始终运行while循环的第一次迭代?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个程序来实现我在文献中找到的算法. @H_502_2@在这个算法中,我需要一个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);.
原文链接:https://www.f2er.com/java/127133.html

猜你在找的Java相关文章