詳述:使用 Select Case 在多重選擇間做決定
更新:2007 年 11 月
在本課程中,您將學習如何使用 Select Case 陳述式,根據多重條件執行程式碼。
上一個課程示範如何使用 If...Then 陳述式,在不同的條件下執行程式碼的不同區塊。雖然您也可以使用 ElseIf 關鍵字,評估 If...Then 陳述式中兩個以上的條件,但 Select Case 陳述式提供更好的方式,評估多重條件。
Select Case 陳述式可以讓您配合需要使用數目不限的條件 (或情況),便於您為有許多選擇的情況撰寫程式碼。例如,假設您的程式使用 String 變數儲存顏色選擇,而您必須取得顏色值。Select Case 陳述式的程式碼可能會如下所示:
Select Case Color
Case "red"
MsgBox("You selected red")
Case "blue"
MsgBox("You selected blue")
Case "green"
MsgBox("You selected green")
End Select
執行此程式碼時,Select Case 程式碼行會判斷運算式的值 (Color)。假定 Color 是 String 變數,而且這個變數是其中包含 Select Case 陳述式之方法的參數。Color 的值會跟第一個 Case 陳述式的值相比較。如果值相符,就執行下一行程式碼,然後程式碼就直接跳至 End Select 行;如果值不相符,就評估下一行 Case。
Case 陳述式可能會採用許多不同的形式。在上述範例中,它是 String。不過,它也可能是任何資料型別或運算式。
您可以評估某個範圍的數字,方法是使用 To 關鍵字,如下所示:
Case 1 To 10
在這個範例中,介於 1 與 10 之間的任何數字都會產生相符結果。
您也可以評估單一 Case 陳述式中的多個值,只要以英文逗號分隔即可,如下所示:
Case "red", "white", "green"
在這個範例中,三個值中任何一個結果都會相符。
您也可以使用比較運算子和 Is 關鍵字,如下評估各值。
Case Is > 9
在這個範例中,大於 9 的任何數字都會產生相符結果。
Case Else
在您知道所有可能條件下,上述範例可行,但是萬一還有您沒交代清楚的條件時,怎麼辦?例如,如果 Color 的值是 yellow,程式碼只是評估三種情況而沒找到相符結果,就不會顯示訊息方塊。
Case Else 陳述式可以在找不到相符結果時,用來執行程式碼,如以下範例所示。
Select Case Color
Case "red"
MsgBox("You selected red")
Case "blue"
MsgBox("You selected blue")
Case "green"
MsgBox("You selected green")
Case Else
MsgBox("Please choose red, blue, or green")
End Select
在上述程式碼中,如果 Color 的值是 yellow,則程式碼會在跟前三行 Case 比較之下,找不到相符結果。當到達 Case Else 行時,就先執行下一行程式碼,再移至 End Select。
若要使用 Select Case 陳述式
在 [檔案] 功能表上,選擇 [新專案]。
在 [新增專案] 對話方塊中,按一下 [範本] 窗格中的 [Windows 應用程式]。
在 [名稱] 方塊中,輸入 SelectCase,再按 [確定]。
會開啟新的 Windows Form 專案。
從 [工具箱] 中,將一個 [TextBox] 控制項和一個 [Button] 控制項拖曳到表單上。
按兩下該按鈕,開啟 [程式碼編輯器]。
在 [Button1_Click] 事件處理常式中,輸入以下程式碼。
Dim Number As Integer = CInt(Textbox1.Text) Select Case Number Case 1 MsgBox("Less than 2") Case 2 To 5 MsgBox("Between 2 and 5") Case 6, 7, 8 MsgBox("Between 6 and 8") Case 9 To 10 MsgBox("Greater than 8") Case Else MsgBox("Not between 1 and 10") End Select
請按 F5 執行程式。
在文字方塊中輸入數字,然後按一下按鈕。
訊息方塊隨即出現,顯示 Case 陳述式與您所輸入數字相符的訊息。
後續步驟
在本主題中,您學會如何使用 Select Case 陳述式,在多重條件間做選擇。現在您可以繼續下一個課程:「發生錯誤時要執行的動作:處理錯誤」。
下一個課程:發生錯誤時要執行的動作:處理錯誤