作者iamstudent (stu)
看板C_and_CPP
標題Re: [問題] if 判斷大量狀態
時間Sun Mar 11 21:09:25 2012
※ 引述《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