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