有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。
状态存储关于过去的信息,就是说:它反映从系统开始到现在时刻的输入变化。转移指示状态变更,并且用必须满足确使转移发生的条件来描述它。动作是在给定时刻要进行的活动的描述。有多种类型的动作:进入动作(entry action):在进入状态时进行退出动作:在退出状态时进行输入动作:依赖于当前状态和输入条件进行转移动作:在进行特定转移时进行
FSM(有限状态机)可以使用上面图1那样的状态图(或状态转移图)来表示。此外可以使用多种类型的状态转移表。下面展示最常见的表示:当前状态(B)和条件(Y)的组合指示出下一个状态(C)。完整的动作信息可以只使用脚注来增加。包括完整动作信息的FSM定义可以使用状态表。
当前状态→ 条件↓ | 状态A | 状态B | 状态C |
---|---|---|---|
条件X | … | … | … |
条件Y | … | 状态C | … |
条件Z | … | … | … |
switch (currentStatus) {
case A:
{
//statements;
break;
}
case B:
{
if (conditionY) {
currentStatus = C
}
break;
}
case C:
{
//statements;
break;
}
}