AnyLogic selectOutput多条件判断报语法错误的技术求助
AnyLogic selectOutput组件Condition字段语法错误解决
错误原因:selectOutput的每个分支Condition字段只能填写单个布尔表达式,你写了两行带分号的独立语句,不符合Java语法规范,因此触发语法错误。
正确写法:
根据你“先判断第一条条件,不成立则检查第二条”的需求,可使用以下两种方式:- 逻辑或合并互斥条件(适合两种情况都触发当前分支的场景):
(agent.isMorning && doctorMorning.idle() == 0) || (!agent.isMorning && doctorAfternoon.idle() == 0) - 三元运算符(更直观体现“先判断时段,再匹配对应医生检查”的逻辑):
agent.isMorning ? doctorMorning.idle() == 0 : doctorAfternoon.idle() == 0
- 逻辑或合并互斥条件(适合两种情况都触发当前分支的场景):
额外提示:如果你的需求是分两个不同输出分支(早上情况走分支1,下午情况走分支2),可以将
agent.isMorning && doctorMorning.idle() == 0放在第一个分支的Condition,agent.isMorning == false && doctorAfternoon.idle() == 0放在第二个分支的Condition,selectOutput会自动依次检查每个分支的条件,满足则走对应输出。
内容的提问来源于stack exchange,提问作者NickA
相关产品推荐
相关产品推荐

