AnyLogic系统动力学流元素if-then语句语法报错求助
问题解答
你的方程确实存在语法问题,AnyLogic基于Java语法,流的方程字段要求输入可直接求值的单个表达式,你原来的多行if-else写法不符合规则,导致解析报错。
两种可行的修正方案:
1. 使用三元运算符(推荐,简洁高效)
直接在方程字段输入:Police < 7500 ? 10 : 5
这是Java里的三元条件表达式,逻辑和你需求完全一致:当Police小于7500时返回10,否则返回5。
2. 使用代码块形式的if-else
如果偏好if-else的写法,需要用大括号包裹成完整的代码块,并明确返回值:
{ if(Police < 7500) { return 10; } else { return 5; } }
流的方程字段会把大括号包裹的内容当作匿名代码块执行,必须通过return返回流量值,否则同样会报错。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

