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

Maza89:

我正在写一个程序来实现我在文献中发现的算法。在此算法中,我需要一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

嵌套 Do While 内循环仅在外循环的第一次迭代时运行

While 循环在第一次迭代后停止

While 循环在第一次迭代后中断

“ For”循环第一次迭代

如何避免在while循环外编码第一次迭代

如何为while循环的第一次迭代设置PHP变量?

嵌套 while 循环以及如何在第一次运行后访问内部循环

以下程序是否在外循环的第一次迭代中执行嵌套循环?

如何在bash脚本中的while循环的第一次迭代中执行特定操作

是什么导致我的循环在其第一次迭代中运行缓慢?

使用 selenium 运行循环会在第一次迭代后引发错误

第一次迭代后嵌套 for 循环未在 python 中运行

检查while循环是否在C#中的第一次迭代中

PHP日期减法仅适用于While循环的第一次迭代

在第一次迭代中使用while停止循环

Java while 循环跳过用户输入的第一次迭代

for循环仅在第一次迭代时执行

在forEach循环中跳过第一次迭代

我循环只经过第一次迭代

For循环在第一次迭代后停止

循环在第一次迭代后停止吗?

第一次迭代后中断循环

For 循环在第一次迭代后结束

在第一次循环后,在while循环中运行`rg`会中断

如何仅在循环的第一次迭代中插入字符串?

如何在 FOR 循环的第一次迭代中访问索引 [i-1] [Python]

如何在循环中更改条件,但仅在第一次迭代之后?

循环中的Foundation.MediaQuery.current(第一次迭代始终不显示任何内容,其次总是正确的)

如何离开第一次迭代元素?