2011-10-27 16 views
0

我在充分了解這個想法可能很好地涵蓋了我不熟悉的主題。假設您正在編寫一小段代碼,它接受任意數量的變量的輸入。這些變量可以有幾種狀態,即:生成可證明的方案集列表

  1. 正確性
  2. 不正確的數據(範圍外,不正確的格式,無論)
  3. 未知(NULL)

所以,如果我們有3個輸入變量以及每個變量的3個狀態,我們最終會得到27個可能的情景。假設我必須根據某些變量的狀態或狀態的組合(AND,NAND,OR等)來執行邏輯。我是否可以輕鬆地構建一個程序,以便我可以覆蓋所有場景,而不會造成if/else樣式邏輯的絕對混亂?首先想到的是statemachines,但在看了他們一下之後,我並不完全相信它是一回事。

+0

查看K-maps –

回答

0

將會有樣式邏輯,但您可以使用karnaugh maps使它更清潔,並確保您已經涵蓋了所有可能性。你做什麼,你做一個網格顯示每個可能的國家組合。然後,根據您想要對其做出反應的方式,以不同方式標記每個狀態。這樣做的目標是對國家進行分組。然後,你可以很容易地看到你的狀態組是否在邏輯上「靠近在一起」,如果是這樣,你可以簡化你的控制邏輯。快速搜索卡諾圖將會帶來explanations,這要歸功於圖片要容易得多,但想法是使用網格來查看哪些變量與一組狀態無關,並將其優化爲邏輯外。