If statement 如果循环在逻辑上不工作!在netlogo中
我有两个代理商,客户和制造商。每只海龟都有许多变量,其中一些变量被定义为全局变量,以便能够分配给其他类型的代理。我定义了这一点:如果在年底,产品1的购买量高于产品2和产品3,那么该产品将在另外3家商店中销售。问题是循环在逻辑上不起作用。命令中定义的内容正在发生,而reporter不是真的If statement 如果循环在逻辑上不工作!在netlogo中,if-statement,netlogo,If Statement,Netlogo,我有两个代理商,客户和制造商。每只海龟都有许多变量,其中一些变量被定义为全局变量,以便能够分配给其他类型的代理。我定义了这一点:如果在年底,产品1的购买量高于产品2和产品3,那么该产品将在另外3家商店中销售。问题是循环在逻辑上不起作用。命令中定义的内容正在发生,而reporter不是真的 ask manufacturers [ if (product1purchases > product2purchases) and (product1purchases > product3p
ask manufacturers [
if (product1purchases > product2purchases) and (product1purchases > product3purchases) [
set storesavailability storesavailability + 3
set Brandd 1
set color red
]
为什么当for if中定义的条件不为true时,会执行命令?
谢谢,它们不是。您可以通过添加打印语句来证明这一点,如下所示:
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
]
]
感谢您提供了这种检查条件的好方法,但非常奇怪的是,当我运行一次程序,然后单击红色代理时,我发现其中一些代理的Product1Purchaes少于Product2Purchaes!或Product1采购少于Product2采购。印刷品上说,例如,对于一些代理(蓝色代理),情况是真实的,但是对于那些代理,当我点击检查时,我注意到了这种不一致性@Naha在每个制造商运行括号中的代码时,该条件将适用于每个制造商。您可以添加更多打印语句,以了解您的期望不正确的原因。请确信NetLogo正按照您的指示进行操作,并尝试了解您在何处指示它执行与预期不同的操作。非常感谢Alan。照你说的做,我可以确保if工作正常。我只是无法正确读取值,因为检查代理的窗口太小了。我用你建议的打印代码试了几次,最后发现我犯了一个错误!非常感谢:)