結構
決策表一般分為4個部分,見下圖。
每個條件對應一個變數、關係或預測,“候選條件”就是它們所有可能的值;動作指要執行的過程或操作;動作入口指根據該入口所對應的候選條件集,是否或按怎樣的順序執行動作。許多決策表在候選條件中使用“不關心”符號來化簡決策表,尤其是當某一條件對應要執行的動作影響很小時。有時,所有的條件在開始時都被認為是重要的,但最後卻發現沒有一個條件對執行的動作有影響,都是無關的條件。
在這4個部分的基礎上,決策表根據候選條件和動作入口的表現方法的變化而變化。有些決策表使用true/false作為候選條件值(類似與if-then-else),有些使用數字(類似於switch-case),有些甚至使用模糊值或機率值。對應動作入口,可以簡單的表示為動作是否執行(檢查動作執行),或更高級些,羅列出要執行的動作(為執行的動作排序)。
優點
決策樹能羅列出所有的可能情況,並清晰的指出相應的處理方式,用戶不需要考慮其中的邏輯關係就能一眼看出其中什麼樣的動作對應什麼樣的情況,這比程式語言中層層嵌套的邏輯語句要強多了。而所有可能情況的平面羅列,也能避免在程式語言編寫中,因為邏輯上的層層嵌套而產生遺漏,尤其在if-then-else結構中else部分是可選的情況下。
因為邏輯控制在編程中的重要地位,決策表成為設計邏輯控制時十分重要的一個工具。