主要内容

通过组合状态操作来消除冗余代码

你可以结合起来入口期间, 和出口在状态下执行相同任务的操作。

通过组合执行相同任务的状态操作,消除冗余代码。例如:

单独的行动 等同的组合行动

条目:y = 0;Y = Y + 1;期间:Y = Y + 1;

条目:y = 0;条目,期间:Y = Y + 1;

en:fcn1();fcn2();du:fcn1();前:FCN1();

en,du,前:fcn1();en:fcn2();

组合状态操作这种方式产生相同的图表执行行为(语义),并生成与等效单独操作的代码相同的代码。

如何结合状态行动

结合一套入口期间和/或出口在状态下执行与逗号分隔列表相同的任务的操作。这是语法:

入门,期间,退出:任务1;任务2.; ......任务;

您还可以使用等效的缩写:

恩,杜,前:任务1;任务2.; ......任务;

有效组合

您可以使用三种操作的任何组合。例如,以下组合有效:

  • EN.

  • EN.前任

  • 前任

  • EN.前任

您可以在逗号分隔列表中以任何顺序组合操作。例如,杜:给出了相同的结果杜,恩:

无效的组合

您无法组合相同类型的两个或多个操作。例如,以下组合无效:

  • EN.EN.

  • 前任EN.前任

  • 前任

如果将多个相同类型的操作组合,则会收到警告图表只执行一次操作。

执行组合行动的顺序

状态以与执行单独操作的顺序执行组合操作:

  1. 入口操作首先,从上到下按照它们出现在州的顺序

  2. 期间行动第二,从上到下

  3. 出口动作最后,从上到下

您组合操作的顺序不会影响状态执行行为。例如:

组合行动 曝光顺序

输入动作y = 0,后跟组合条目,在动作y = y + 1期间。

  1. 恩:y = 0;

  2. 恩:Y = Y + 1;

  3. du:y = y + 1;

组合条目和在动作期间y = y + 1,后跟条目y = 0。

  1. 恩:Y = Y + 1;

  2. 恩:y = 0;

  3. du:y = y + 1;

组合期间和条目动作y = y + 1,后跟条目y = 0。

  1. 恩:Y = Y + 1;

  2. 恩:y = 0;

  3. du:y = y + 1;

在和条目动作中组合y = y + 1,然后是组合的条目和退出动作y = 10。

  1. 恩:Y = Y + 1;

  2. 恩:Y = 10;

  3. du:y = y + 1;

  4. 前:y = 10;

结合国家行动的规则

  • 不要组合相同类型的多个操作。

  • 不要创建具有与Action关键字相同的数据,事件或邮件:入口EN.期间出口前任

相关话题