Select Case

Select Case

Select Case是計算機語言,是VB6.0條件控制語句之一,是任意數值或字元串表達式。與 If ... ElseIf ... ElseIf ... End If 類似。

基本介紹

  • 外文名:Select Case
  • 類似:If...ElseIf...ElseIf...End If
  • 分類:任意數值或字元串表達式
  • 性質:計算機語言
描述,語法,基本用法,高級用法,

描述

VB6.0條件控制語句之一,與 If ... ElseIf ... ElseIf ... End If 類似。

語法

Select Case testExpression[Case expression    [statements]][Case expression    [statements]][...][Case Else    [elseStatements]]End Select
參數
說明
testExpression
必要參數。任何數值表達式或字元串表達式。其形式為expression,expression To expression,Is comparisonOperator。
expression
如果有Case出現,則為必要參數。To 關鍵字可用來指定一個數值範圍。如果使用To關鍵字,則較小的數值要出現在 To之前。使用Is關鍵字時,則可以配合比較運算符(除Is和Like之外)來指定一個數值範圍。如果沒有提供,則Is關鍵字會被自動插入。
statements
可選參數。一條或多條語句,當 testExpression 匹配 expression 中的任何部分時執行。
elseStatements
可選參數。一條或多條語句,當 testExpression 不匹配 Case 子句的任何部分時執行。
其中,表述情形的關鍵字,有 Is 和 To,多個情形要並列在一起時,使用逗號 (英文) 連線。當省略 Case Else 語句並且指示變數不符合所述的任何情形時,語句的執行,會直接到達 End Select。
如果在執行語句的時候,有需要跳過沒有必要再執行的語句而直接結束 Select Case 的情況時,請使用Exit Select。
嵌套
各語句組中也可以寫入完整的 Select Case 語句,像 For 循環中嵌套一個二級循環一樣。別誤會,Select Case 不是循環語句,是條件選擇語句,與 If ... ElseIf ... ElseIf ... End If 類似。

基本用法

使用示例
Private Sub Main()    Select Case InputBox("請輸入你希望的天氣,從晴天、多雲、陰天、陣雨、小雨、小雪、冰雹中選一個填入。", "請輸入你希望的天氣", "晴天")    Case "晴天"        MsgBox "哇喔!你喜歡的是晴天啊,祝你天天好心“晴”~!"    Case "多雲"        MsgBox "喜歡多雲的天氣,是因為比較怕紫外線嗎?"    Case "陰天"        MsgBox "為什麼喜歡陰天呢?真令人好奇啊~!"    Case "陣雨"        MsgBox "為什麼喜歡陣雨天呢?真令人好奇啊~!"    Case "小雨"        MsgBox "為什麼喜歡小雨天呢?真令人好奇啊~!"    Case "小雪"        MsgBox "為什麼喜歡小雪天呢?真令人好奇啊~!"    Case "冰雹"        MsgBox "為什麼喜歡冰雹天呢?真令人好奇啊~!"    Case Else        MsgBox "不可以醬紫!只能從我給出的幾種中挑選一個填入!"    End SelectEnd Sub
<以上代碼在VB6.0測試通過>
使用關鍵字 Is
Private Sub Main()    Select Case Day(Date)    Case Is <= 10        MsgBox "目前是本月上旬!"    Case Is > 20        MsgBox "目前是本月下旬!"    Case Else        MsgBox "目前是本月中旬!"    End SelectEnd Sub
<以上代碼在VB6.0測試通過>
使用關鍵字 To
Private Sub Main()    Select Case Weekday(Date)    Case 1, 7 '星期日、星期六        MsgBox "今天是周末!"    Case 2 To 6 '星期一到星期五        MsgBox "今天不是周末!"    End SelectEnd Sub
<以上代碼在VB6.0測試通過>
關鍵字 Is 和 To 可以根據需要,在同一條情形中一起使用,例如
Case Is <= 5, 8 To 10, Is > 20
不過要注意的是,To 表示的區間,是閉區間,不適用於開區間(或半閉半開區間)。如果一定要用Select Case來確定數值在哪個區間內,可以這么做:
Private Sub Main()    On Error GoTo ErrHdling    Dim Num As Single    Num = InputBox("請輸入!")    Select Case Num    Case Is <= 1        MsgBox "這個數不大於1"    Case Is < 3        MsgBox "這個數在1和3之間的開區間內"    Case Is < 5        MsgBox "這個數在3和5之間的半閉半開區間內"    Case Is <= 7        MsgBox "這個數在5和7之間的閉區間內"    Case Is > 7        MsgBox "這個數大於7"    End Select    Exit SubErrHdling:    MsgBox "這個不是可比較的數字"End Sub
<以上代碼在VB6.0測試通過>
此時,各 Case 不能隨便對換順序。雖然這個可以達到我們想要的效果,卻因為不夠嚴謹,讓我憂心忡忡。那么什麼是最嚴謹的呢?請看高級用法。

高級用法

語法
'這裡只是為了更好的理解,稍稍變一下表述,不改變實意。Select Case True[Case expression    [statements]][Case expression    [statements]][...][Case Else    [elseStatements]] '當以上條件都為 False 時執行。End Select
在此語法下,Is、To 關鍵字沒有意義,Is 的值為 True(Is是變數嗎?這個問題真的好讓人回味啊)。
只要邏輯運算表達式的運算結果為 True,就執行該 Case 下的語句組。那么,上面的例子就這么改。
Private Sub Main()    On Error GoTo ErrHdling    Dim Num As Single    Num = InputBox("請輸入!")    Select Case True    Case Num >= 5 And Num <= 7        MsgBox "這個數在5和7之間的閉區間內"    Case Num < 3 And Num > 1        MsgBox "這個數在1和3之間的開區間內"    Case Num > 7        MsgBox "這個數大於7"    Case Num < 5 And Num >= 3        MsgBox "這個數在3和5之間的半閉半開區間內"    End Select    Exit SubErrHdling:    MsgBox "這個不是可比較的數字"End Sub
可以看到,順序被我隨意變動了,測試也通過了。那么,愛琢磨的我,又發現一個問題:Select Case True可以改成Select Case False嗎?答案是,可以。這裡就不作示例了,只給出語法。
Select Case False[Case expression    [statements]][Case expression    [statements]][...][Case Else    [elseStatements]] '當以上條件都為 True 時執行。End Select
只要邏輯運算表達式的運算結果為 False,就執行該 Case 下的語句組。

相關詞條

熱門詞條

聯絡我們