当有一个有效的状态转换时,该状态被标记为退出。一个状态被标记为退出的方式有以下几种:
输出转换起源于状态边界。
向外的过渡跨越了州界。
目标状态是激活状态的并行子状态。
此流程图显示了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
完成时间步长。