5.判定表驱动方法
前面因果图方法中已经用到了判定表。判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。在程序设计中可作为编写程序的辅助工具。把复杂的逻辑关系和多种条件组合的情况表达得较明确。
(1) 判定表结构
判定表通常由4部分组成,如下图所示:
·条件桩(condition stub):列出了问题的所有条件。通常认为列出的条件的次序无关。
·动作桩(action stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
·条件项(condition):列出针对它所列条件的取值,在所有可能情况下的真假值。
·动作项(action entry):列出在条件项的各种取值情况下应该采取的动作。
·规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,条件项和动作项就有多少列。
(2) 判定表建立
① 确定规则的个数。假如有n个条件,每个条件有两个取值(0,1),故有2n种规则。
② 列出所有的条件桩和动作桩。
③ 填入条件项。
④ 填入动作项。
⑤ 简化。合并相似或者相同动作。
·哪些条件下适合使用判定表呢?
① 规格说明以判定表的形式给出,或容易转换成判定表。
② 条件的排列顺序不影响执行哪些操作。
③ 规则的排列顺序不影响执行哪些操作。
④ 当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
⑤ 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要。
(3) 例题
某终端日期输入时,年月日必须在取值范围输入,否则会报错,且报错的优先级分别为年月日