看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《BlazarArc (Midnight Sun)》之銘言: : 語言:C或C++ : 問題(Question): : 各位好,想請教關於在需要判斷狀態做不同動作 : 而狀態規模很大的情況下,是否有更好的寫法 : 問題的假設:這些選項無法獨立出來,所以變成有 2^選項 種狀態 : 每個狀態要做的事情可能有些相關有些非相關 : 需要判斷的狀態還是佔整體空間的少數,而剩下的都做預設的動作 一般正常的情況下 這些選項的判斷還是能夠化簡才對 我不知道你有沒有學過數位電路邏輯 裡面有一種卡諾圖 就是用來化簡boolean代數運算的 一般人可以手工畫圖處理的情況 適用於4個維度以下,也就是16格 更高以上的維度則需要用軟體幫忙 此外 應該會有許多選項是彼此無關的才對 那麼分開寫就好了 例如這樣: if(bFlagA) functionDoA(); if(bFlagB) functionDoB(); 根本就不需要放在一起 流水執行就好 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.210.62
BlazarArc:謝謝,有學過KMap,我知道無關的選項可以分開寫 03/11 21:11
BlazarArc:假設條件檢查中每個變數都不可獨立 03/11 21:12