函数不将值与代理参数进行比较

问题描述 投票:0回答:1

我写了一个

'IF ELSE' function 
来将参数值与 3 个预定义值进行比较,这些是可用卡车的类型。 我的代理是一群商店,其 ID、位置和允许的卡车类型基于下表中的数据。
'IF function'
将检查商店允许使用哪些卡车,并向其代理发送包含订单的消息,以便卡车离开配送中心并交付订单。

Table with data

Java Code of IF Function

Agent's Parameters

我们检查了每家商店,他们的值似乎与表格中的值正确一致。然而,

'IF function'
似乎不起作用,因为没有卡车离开经销商。我们尝试改变调用参数的方式,但似乎没有效果。也许我们没有尝试正确的方法。

anylogic
1个回答
0
投票

您需要做的是以下

  1. this.vehicleLimit.equals("SR33") 仅对 double int 和 boolean 等原语使用 == 您对对象使用 .equals 来查看它们是否具有相同的值

  2. 在最后一个 else if 之后添加一个 else 并编写以下内容

    error("没有使用任何 ifs");

一般来说,总是在所有出现错误的 if else 后面加上 else ,以确保你的模型的行为符合你的预期

  1. 每次发送前检查卡车值是否为空

    if(truck==null) error("truck is null");

  2. 检查卡车代理中的连接对象,是否确实收到消息。

  3. 如果前面的所有操作都不起作用,则您的卡车代理可能做错了什么,而您决定不向我们展示这一点。

© www.soinside.com 2019 - 2024. All rights reserved.