D25-查閱與參照函數(IF、CHOOSE)-2
續上篇,我們提到if、choose可以做擴充選項的作用,我們這次以前面提到的範例來做討論,如下圖。
我們可以看到這個寫法是比較冗長的,總共有230個全半形字元。
因為大量使用IF和AND的關係所以會把判別的功能拖得比較長,如果我們用1或0代表是與否(在電腦世界布林值就是1和0),這樣就能夠結合CHOOSE函數中第一參數位置的數值,再根據這個數值去選擇要傳回的結果。
先釐清邏輯判斷的方式,我們先在第一參數位填入1再去加上後面會判斷產生的值,後面判斷用IF就可以,而IF裡面比較關鍵的思路是把支出這個選項的數值當作判斷依據,畢竟兩個選項就只有3種可能(已去掉0/0的狀況)。
先判斷是不是只有支出是1,如果是傳回2(這個數值根據後面CHOOSE參數版放順序),不是的話就剩下1/0或1/1的狀況。這樣一來就簡單,因為我們在前面先設定好參數至少有1,所以設定IF否定傳回的值是支出的值,這樣就能夠判斷是不是1/1的狀況,支出是1就會加上原先的1,導致第一參數位是2(1/1的狀況),如果支出是0那CHOOSE參數就會是1(收入)。
如下圖,這樣節省了230-173=57個字數。