【问题标题】:"While loop" not working in my Anylogic model“当循环”在我的 Anylogic 模型中不起作用
【发布时间】:2021-08-18 00:15:17
【问题描述】:

我有我之前在 Stack 上发布的模型。我目前正在通过 5 个流程图块运行迭代,其中包含输入块和服务块。当代理填充流程图 5 中的服务块 5 时,出口块应开始填充块 1,依此类推。我已经使用 While 无限循环在五个流程图块之间循环,但它不起作用。

while(true)
{
  for (Curing_Drying currProcess : collection) {

    if (currProcess.allowedDay == (int)time(DAY)) {
       currProcess.enter.take(agent);        
         }   
}
if (queue10.size() <= Throughtput1){
  break;
}

}

Image for further illustration 1 Image for further illustration 2 想知道是否有人可以告诉我代码中有什么问题。

【问题讨论】:

  • 不确定你试图实现什么(总是清楚地解释你的目标是什么),我们不知道你所说的“站”是什么意思,等等。无论如何,该代码是非常糟糕的做法。如果不满足第一个if,则您将陷入无限循环。此外,整个代码不是一个好主意,tbh...

标签: anylogic


【解决方案1】:

根据提供的描述和图片,不清楚为什么需要 while 循环。对于每个到达 Exit 块的代理,都会执行 On exit 操作。似乎意图是根据模型开始时间以来的天数找到合适的 Curing_Drying 块?如果是这样,那么只需遍历 collection 就足够了。

此外,为集合提供更有意义的名称通常是一种好习惯。简单地使用 collection 并没有说明任何内容,以后可能会很混乱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    相关资源
    最近更新 更多