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