程序員必看VB.NET CASE語句拓展篇
有過開發(fā)經(jīng)驗(yàn)的程序員知道,條件語句在代碼中的作用,在VB.NET中VB.NET CASE語句就是比較常用的一種,下面是詳細(xì)的介紹和代碼的演示。
如果要將同一個(gè)表達(dá)式與不同的值進(jìn)行比較,則可以用 Select...Case 語句來替換 If...Then...Else 語句。所不同的是, If 和 ElseIf 語句可在每個(gè)語句中計(jì)算不同的表達(dá)式,而 Select 語句對(duì)單個(gè)表達(dá)式只計(jì)算一次,然后將其和不同的值比較。
我們來看一個(gè)示例,代碼如下:
- Function bonus(ByVal performance As Integer, _
- ByVal salary As Decimal) As Decimal
- Select performance
- Case 1
- Return salary * 0.1
- Case 2
- Return salary * 0.3
- Case 3
- Return salary * 0.7
- Case 4
- Return salary * 0.9
- Case 5
- Return salary * 1.2
- End Select
- End Function
這個(gè)計(jì)算員工獎(jiǎng)金 (bonus) 的函數(shù) (Function) 有兩個(gè)參數(shù),一個(gè)是 performance,即員工的表現(xiàn),另外一個(gè)是 salary,即員工的工資。員工的表現(xiàn)有 5 等,分別用 1,2,3,4,5 來表示。這個(gè)示例用了 Select...Case 語句,意思是當(dāng)員工 performance 為 1 時(shí),員工的獎(jiǎng)金是工資乘以 0.1;當(dāng)員工 performance 為 2 時(shí),員工的獎(jiǎng)金是工資乘以 0.3;當(dāng)員工 performance 為 3 時(shí),員工的獎(jiǎng)金是工資乘以 0.7;員工 performance 為 4 時(shí),員工的獎(jiǎng)金是工資乘以 0.9;員工 performance 為 5 時(shí),員工的獎(jiǎng)金是工資乘以 1.2。
通過這個(gè)示例,你可以了解 Select...Case 語句的結(jié)構(gòu)。如下:
- Select ... (某個(gè)表達(dá)式,比如一個(gè)變量)
- Case... (某個(gè)值)
- ...(執(zhí)行代碼)
- Case... (某個(gè)值)
- ...執(zhí)行代碼
- End Select
你可以使用任意數(shù)目的 VB.NET CASE語句增加要比較的值。
Visual Basic 按照在 Select...Case 結(jié)構(gòu)中出現(xiàn)的順序,將表達(dá)式的值和 Case 語句中的值進(jìn)行比較。如果發(fā)現(xiàn)有一個(gè) Case 的值匹配,就執(zhí)行該 Case 相應(yīng)的代碼,執(zhí)行完之后,不會(huì)再執(zhí)行其它VB.NET Case 語句,直接就到 End Select 了。
VB.NET CASE Else語句
如果表達(dá)式不符合 Case語句的任何值,可以用 Case Else 語句來應(yīng)付例外情況。比如上個(gè)示例中,除了 1 到 5 的數(shù)值外,假設(shè)員工 performance 為 0 或者大于 6 如何處理?
你可以改寫程序,如下:
- Function bonus(ByVal performance As Integer, _
- ByVal salary As Decimal) As Decimal
- Select performance
- Case 1
- Return salary * 0.1
- Case 2
- Return salary * 0.3
- Case 3
- Return salary * 0.7
- Case 4
- Return salary * 0.9
- Case 5
- Return salary * 1.2
- Case Else
- Return 0
- End Select
- End Function
注意改寫的示例增加了兩行代碼:
- Case Else
- Return 0
這兩行代碼的意思是,如果 performance 不等于 Case語句的任何值時(shí),就執(zhí)行 Case Else 后的語句,返回 0 。
VB.NET Case語句可包含多個(gè)值和某個(gè)范圍的值
- Function bonus(ByVal performance As Integer, _
- ByVal salary As Decimal) As Decimal
- Select performance
- Case 1
- Return salary * 0.1
- Case 2,3
- Return salary * 0.3
- Case 3 To 7
- Return salary * 0.7
- Case 8 To 9
- Return salary * 0.9
- Case Is <= 15
- Return salary * 1.2
- Case Else
- Return 0
- End Select
- End Function
每個(gè) Case 語句可以包含一個(gè)值,比如:
- Case 1
也可以包含多個(gè)值,多個(gè)值用逗號(hào) (,) 分開,比如:
- Case 2,3
也可以是某個(gè)范圍的值,比如:
- Case 3 To 7
也可以是值和比較運(yùn)算符的組合,比如:
- Case Is <= 15
【編輯推薦】