退出状态
当存在从某个状态的有效转换时,将该状态标记为退出。一个状态以下列方式之一被标记为退出:
向外过渡起源于州边界。
向外过渡跨越了州界。
目标状态是激活状态的并行状态子状态。
退出状态工作流
这个流程图显示了statflow中事件的进展®退出状态。在这个流程图中,当前状态是指决策或过程正在发生的状态。
退出操作
退出
当状态为活动状态且存在从状态的有效转换时,状态的操作将执行。一个州执行它的退出
变为非活动前的动作。
退出操作之前有前缀退出
或前女友
,后面跟着一个必需的冒号(:
),然后接著一个或多个动作。用回车,分号(;
),或逗号(,
).
退出状态示例
在本例中,状态流图已初始化,并且条目
执行以下操作StateA
和StateA1
。对于这个图表,在
此图表的操作已发生两次。一个新的时间步长出现,然后图表被唤醒。
请按照状态图执行的工作流和评估转换的工作流,StateB
已经被标记为可以进入。StateA
是过渡的源头。在这个时间步X = 5
,Y = 2
,Z = 0
。
通过遵循状态退出操作的流程图,直到图表进入睡眠状态,此图表的执行步骤如下:
StateA
难道不是一个超级国家吗StateB
。的退出操作
StateA
和马克StateA
是不活跃的。现在Z = 1
。StateA
没有父状态。去输入操作。
这些步骤完成退出
工作流程StateA
。然而,图表还没有睡着。
执行输入图表或状态的工作流为StateB
完成时间步长。
使用超过渡退出状态
超跃迁是图表中不同层次之间的跃迁。超转换可以是顶层图表中的状态与其某个子状态中的状态之间的转换,也可以是位于不同子状态中的状态之间的转换。您可以创建跨越图表中任意级别的超过渡。
当通过超转换退出状态时,在转换源的退出操作执行之后,其超状态被标记为非活动,超状态的退出操作将被执行。在这个例子中,StateA2
被标记为退出
和StateB1
被标记为条目
。此时此刻,X = 5
,Y = 5
,Z = 0
。
请按照输入图表或状态的工作流直到图表进入睡眠状态,退出状态的执行步骤StateA2
的顺序如下:
StateA2
不是目标状态的超状态(StateB1
).执行
退出
操作StateA2
和马克StateA2
是不活跃的。StateA2
有一个父状态,StateA
。StateA
不是目标状态的超状态(StateB1
).执行
退出
操作StateA
,并标记StateA
是不活跃的。StateA
没有父状态。
这些操作完成了退出
工作流程StateA2
和StateA
。然而,图表还没有睡着。
执行输入图表或状态的工作流为StateB
和StateB1
完成时间步长。