加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 23:54:52 所属栏目:Java 来源:网络整理
导读:我正在编写一个程序来实现我在文献中找到的算法. 在这个算法中,我需要一个while循环; while(solution has changed){ updateSolution();} 为了检查while条件是否满足,我创建了一个名为copy的Object(与解决方案类型相同).在更新解决方案之前,此副本是解决方案
我正在编写一个程序来实现我在文献中找到的算法.
在这个算法中,我需要一个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);.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读