1、语法Select Case <指示变量或表达式><默认语句组,以上语句组都因情形不符合实际时执行>End Select其中,表述情形的关键字,有IS和TO,多个情形要并列在一起时,使用逗号(英文)连接。
2、当省略Case Else语句并且语句组都因情形不符合实际时,语句的执行,会直接到达End Select。
(资料图片)
3、如果在执行语句的时候,有需要跳过没有必要再执行的语句而直接结束Select Case的情况时,请使用exit select。
4、注意在“<指示变量或表达式>”不是True或False关键字时,逻辑运算(And、Or、Not)会没有意义。
5、因为逻辑运算的结果是True或False,不是表述具体情况的值或者范围。
6、需要比较大小时,请使用IS、To关键字。
7、以上为了给出一个能够通用的语法而如此表述。
8、在“<指示变量或表达式>”是True或False关键字时,Is、To关键字没有意义。
9、以上两种情况,切记不要搞混。
10、嵌套各语句组中也可以写入完整的Select Case语句,像For循环中嵌套一个二级循环一样。
11、别误会,Select Case不是循环语句,是条件选择语句,与IF...ELSEIF...ELSEIF...END IF类似。
12、基本用法Private Sub main()Select Case InputBox("请输入你希望的天气,从晴天、多云、阴天、阵雨、小雨、小雪、冰雹中选一个填入。
13、", "请输入你希望的天气", "晴天")Case "晴天"MsgBox "哇哦!你喜欢的是晴天啊,祝你天天好心“晴”~!"Case "多云"MsgBox "喜欢多云的天气,是因为比较怕紫外线吗?"Case "阴天"MsgBox "为什么喜欢阴天呢?真令人好奇啊~!"Case "阵雨"MsgBox "为什么喜欢阵雨天呢?真令人好奇啊~!"Case "小雨"MsgBox "为什么喜欢小雨天呢?真令人好奇啊~!"Case "小雪"MsgBox "为什么喜欢小雪天呢?真令人好奇啊~!"Case "冰雹"MsgBox "为什么喜欢冰雹天呢?真令人好奇啊~!"Case ElseMsgBox "不可以酱紫!只能从我给出的几种中挑选一个填入!"End SelectEnd Sub使用关键字ISPrivate Sub main()Select Case Day(Now)Case Is <= 10MsgBox "目前是本月上旬!"Case Is > 20MsgBox "目前是本月下旬!"Case ElseMsgBox "目前是本月中旬!"End SelectEnd Sub<以上代码在VB6.0测试通过>使用关键字TOPrivate Sub main()Select Case Weekday(Now)Case 1, 7MsgBox "今天是周末!"Case 2 To 6MsgBox "今天不是周末!"End SelectEnd Sub<以上代码在VB6.0测试通过>关键字IS和TO可以根据需要,在同一条情形中一起使用,例如Case Is<=5,8 to 10,Is>20不过要注意的是,TO表示的区间,是闭区间,不适用于开区间(或半闭半开区间)。
14、如果一定要用select Case来确定数值在哪个区间内,可以这么做:Private Sub main()On Error GoTo errDim num As Singlenum = InputBox("请输入!")Select Case numCase Is <= 1MsgBox "这个数不大于1"Case Is < 3MsgBox "这个数在1和3之间的开区间内"Case Is < 5MsgBox "这个数在3和5之间的半闭半开区间内"Case Is <= 7MsgBox "这个数在5和7之间的闭区间内"Case Is > 7MsgBox "这个数大于7"End SelectExit Suberr:MsgBox "这个不是可比较的数字"End Sub此时,各Case不能随便对换顺序。
15、虽然这个可以达到我们想要的效果,却因为不够严谨,让我忧心忡忡。
16、那么什么是最严谨的呢?请看高级用法。
17、高级用法语法(这里只是为了更好的理解,稍稍变一下表述,不改变实意。
18、)Select Case trueCase <逻辑运算表达式1><语句组1>Case <逻辑运算表达式2><语句组2>....Case <逻辑运算表达式n><语句组n>Case Else<默认语句组,当以上任何逻辑运算都为False时执行>End Select在此语法下,Is、To关键字没有意义,Is的值为true(Is是变量吗?这个问题真的好让人回味啊)只要逻辑运算表达式的运算结果为true,就执行该Case下的语句组。
19、那么,上面的例子就这么改。
20、Private Sub main()On Error GoTo errDim num As Singlenum = InputBox("请输入!")Select Case TrueCase num >= 5 And num <= 7MsgBox "这个数在5和7之间的闭区间内"Case num < 3 And num > 1MsgBox "这个数在1和3之间的开区间内"Case num > 7MsgBox "这个数大于7"Case num < 5 And num >= 3MsgBox "这个数在3和5之间的半闭半开区间内"End SelectExit Suberr:MsgBox "这个不是可比较的数字"End Sub可以看到,顺序被我随意变动了,测试也通过了。
21、那么,爱琢磨的我,又发现一个问题:Select Case True可以改成Select Case False吗?答案是,可以。
22、这里就不作示例了,只给出语法Select Case FalseCase <逻辑运算表达式1><语句组1>Case <逻辑运算表达式2><语句组2>....Case <逻辑运算表达式n><语句组n>Case Else<默认语句组,当以上任何逻辑运算都为true时执行>End Select只要逻辑运算表达式的运算结果为False,就执行该Case下的语句组。
本文到此分享完毕,希望对大家有所帮助。