if 循环在逻辑上不起作用!在 netlogo 中

if loop does not work logically! in netlogo

我有两个代理商,客户和厂家。这些海龟中的每一个都有许多变量,其中一些变量被定义为全局变量,以便能够分配给另一种类型的代理。我这样定义:如果在年底,产品 1 的购买量高于产品 2 和 3,则该产品在另外 3 家商店中销售。问题是循环在逻辑上不起作用。命令中定义的内容在 reporter 不正确时正在发生!!

ask manufacturers [ 
 if (product1purchases > product2purchases) and (product1purchases > product3purchases) [



set storesavailability storesavailability + 3
  set Brandd 1
  set color red
 ]

为什么当for if定义的条件不成立时,执行命令? 谢谢

他们不是。您可以通过添加打印语句向自己证明这一点,如下所示:

ask manufacturers [ 
  let _cond ((product1purchases > product2purchases) and (product1purchases > product3purchases))
  print (word "_cond is " _cond)
  if (_cond) [
    print (word "within branch, _cond is " _cond)
    set storesavailability storesavailability + 3
    set Brandd 1
    set color red
  ]
]