Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 如果循环在逻辑上不工作!在netlogo中_If Statement_Netlogo - Fatal编程技术网

If statement 如果循环在逻辑上不工作!在netlogo中

If statement 如果循环在逻辑上不工作!在netlogo中,if-statement,netlogo,If Statement,Netlogo,我有两个代理商,客户和制造商。每只海龟都有许多变量,其中一些变量被定义为全局变量,以便能够分配给其他类型的代理。我定义了这一点:如果在年底,产品1的购买量高于产品2和产品3,那么该产品将在另外3家商店中销售。问题是循环在逻辑上不起作用。命令中定义的内容正在发生,而reporter不是真的 ask manufacturers [ if (product1purchases > product2purchases) and (product1purchases > product3p

我有两个代理商,客户和制造商。每只海龟都有许多变量,其中一些变量被定义为全局变量,以便能够分配给其他类型的代理。我定义了这一点:如果在年底,产品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中定义的条件不为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工作正常。我只是无法正确读取值,因为检查代理的窗口太小了。我用你建议的打印代码试了几次,最后发现我犯了一个错误!非常感谢:)