IIF以外的另一項選擇--使用Switch函式作多個值的判斷【VB Only】
實務上常會使用IIF函式進行運算式的評估,若運算式為真則將傳回TruePart的物件,若為假則傳回FalsePart的物件,若要判斷的運算式只有兩種結果,也就是不是真就是假,那麼IIF函式就相當好用,但若是要進行下列判斷,使用IIF函式恐怕就比較不是太好閱讀。
分數級距 | 級距名稱 |
<60 | 不及格 |
>= 60 and <70 | 丙 |
>= 70 and <80 | 乙 |
>= 80 and <90 | 甲 |
>= 90 | 優 |
- 下列程式碼示範使用IIF來完成上表所需的邏輯。
1: Dim result As String = IIf(score < 60, "不及格" _
2: , IIf(score >= 60 And score < 70, "丙" _
3: , IIf(score >= 70 And score < 80, "乙" _
4: , IIf(score >= 80 And score < 90, "甲", "優"))))
- 執行結果:
- 下列程式碼使用Switch來完成上表所需的邏輯。
1: Dim result As String = Switch(score < 60, "不及格", _
2: score >= 60 And score < 70, "丙", _
3: score >= 70 And score < 80, "乙", _
4: score >= 80 And score < 90, "甲", _
5: score >= 90, "優")
- 執行結果同上。
由上述以IIF及Switch兩種方法完成相同的邏輯判斷,雖結果相同但就閱讀性,筆者以為Switch較易閱讀,於更複雜的判斷時可降低寫錯的機會,同時Swich函式同樣適用於Microsoft Report中的邏輯判斷。
參考資料:
http://msdn.microsoft.com/zh-tw/library/dft2z9yf(v=vs.90).aspx
http://msdn.microsoft.com/zh-tw/library/27ydhh0d(v=vs.90).aspx