变量的赋值
在转换中执行赋值时,所使用的值有明显的区别。在下面的表达式中
蓝色部分表示引发事件(也就是常说的e)时的值,绿色部分表示执行所有激活链后将更新的值。对于以下状态图:
当处于状态 1 并引发事件 e 时,执行将按如下方式发生:
感兴趣的小伙伴可以思考一下为什么是状态4而不是状态3
赋值更新激活链末尾的变量或离散输出的值。因此,当相同的值被分配两次时,就会出现问题,我们应该使用哪一个?
x 的值应该是 1 还是值 18?为避免状态图执行的歧义,禁止对激活链中的变量进行多次更新。为了打破链条,您必须为其中一个转换添加一个触发器:
这样,状态 2 和状态 3 之间的转换就不会直接进行;在重新更新变量 X 之前,必须在状态 2 中引发事件 E。
全部0条评论
快来发表一下你的评论吧 !