多If分支和Select case 都是用来处理多条件分支的语句,区别在于:
1. If elseif .. 的每个分支都是独立的表达式,只有在前一个分支没有匹配才进行后一个分支的表达式判断。 如:
if x=1 the
do1
elseif x=2 and y=1 then
do2
...
以上 两个条件表达式可以没有任何关系,只有第一个x<>1时才会进行x=2 and y=1的表达式判断。
2. select case一般用于对同一个表达式不同结果值分支的语句。如:
select case x+2
case 1
do1
case 2,3
do3
case else
do4
end select
没什么区别都是选择语句,用了过多的Else后你会感到很不方便,而且程序结构也不清晰,所以大多数的语言还有Select语句帮助解决这个问题
Select Case语句经常用于将某变量或表达式的值,与一组数据分别进行比较,判断相等或不相等,并执行相应的分支语句列,通常写出来的代码会比If-Else语句的整洁,容易看懂;如:
Select Case i
Case 0:
......
Case 1,3:
......
Case 5 To 8:
......
Case Else:
......
End Select
但如果改装成If-Else语句将会是:
If i=0 Then
......
ElseIf i=1 Or i=3 Then
......
ElseIf i=5 Or i=6 Or i=7 Or i=8 Then
......
Else
......
End If
看着上面众多i=*、Or、Then,你会不会觉得很烦呢?
If-Else语句除了可以用来判断相等不相等的关系,还可以用来判断大于或小于的关系,这点Select Case语句是无法做到的。Select Case语句可以改装成If-Else语句,但If-Else语句有时很难甚至无法或者需要通过其它方法来改装成Select Case语句。如:
If total<60 Then
Print "不及格"
ElseIf total<70 Then
Print "及格"
ElseIf total<80 Then
Print "中等"
ElseIf total<90 Then
Print "良好"
ElseIf total<100 Then
Print "优秀"
Else
Print "帅呆了"
End If
可以看到你无法将上面的If-Else语句直接改装成Select Case语句,Select Case语句不能用来判断大于或小于关系,但你可以改造一下,来使用它:
Select Case Int(total / 10)
Case 0 To 5: Print "不及格"
Case 6: Print "及格"
Case 7: Print "中等"
Case 8: Print "良好"
Case 9: Print "优秀"
Case Else: Print "帅呆了"
End Select
其中Int(total / 10)是用于求得total除以10的整数部分。