VBScript 条件语句详解
VBScript 提供了两种主要的条件语句:If…Then…Else 和 Select Case。它们用于根据条件执行不同的代码块。
1. If…Then…Else 语句
最常用、最灵活的条件判断结构。
语法结构
- 单行形式(简单条件):
If 条件 Then 语句
' 或
If 条件 Then 语句1 Else 语句2
- 多行形式(推荐用于复杂逻辑):
If 条件1 Then
语句块1
ElseIf 条件2 Then
语句块2
ElseIf 条件3 Then
语句块3
Else
语句块4
End If
完整示例
Option Explicit
Dim score
score = InputBox("请输入成绩(0-100):")
If Not IsNumeric(score) Then
MsgBox "请输入有效的数字!"
Else
score = CInt(score) ' 转换为整数
If score > 100 Or score < 0 Then
MsgBox "成绩必须在0-100之间!"
ElseIf score >= 90 Then
MsgBox "优秀!等级:A", vbInformation
ElseIf score >= 80 Then
MsgBox "良好!等级:B", vbInformation
ElseIf score >= 70 Then
MsgBox "中等!等级:C", vbInformation
ElseIf score >= 60 Then
MsgBox "及格!等级:D", vbInformation
Else
MsgBox "不及格!需要努力哦~", vbExclamation
End If
End If
常用比较运算符
| 运算符 | 含义 | 示例 |
|---|---|---|
| = | 等于 | a = b |
| <> | 不等于 | a <> b |
| > | 大于 | a > b |
| < | 小于 | a < b |
| >= | 大于等于 | a >= b |
| <= | 小于等于 | a <= b |
逻辑运算符
| 运算符 | 含义 | 示例 |
|---|---|---|
| And | 并且 | If a > 0 And b > 0 Then |
| Or | 或者 | If a = 1 Or b = 1 Then |
| Not | 非 | If Not isEmpty(var) Then |
| Xor | 异或 | 很少用 |
2. Select Case 语句
适合当一个变量需要与多个值比较时,比多层 If 更清晰易读。
语法
Select Case 表达式
Case 值1
语句块1
Case 值2
语句块2
Case 值3 To 值5 ' 范围
语句块3
Case Is > 值6 ' 比较表达式
语句块4
Case Else ' 默认情况
语句块5
End Select
示例1:星期判断
Option Explicit
Dim weekDay
weekDay = Weekday(Now) ' 返回1(周日)到7(周六)
Select Case weekDay
Case 1, 7
MsgBox "今天是周末,休息吧!"
Case 2 To 6
MsgBox "今天是工作日,努力上班!"
Case Else
MsgBox "无效的日期"
End Select
示例2:成绩等级(更简洁版)
Dim score
score = CInt(InputBox("请输入成绩:"))
Select Case score
Case Is >= 90
MsgBox "A - 优秀"
Case Is >= 80
MsgBox "B - 良好"
Case Is >= 70
MsgBox "C - 中等"
Case Is >= 60
MsgBox "D - 及格"
Case Else
MsgBox "F - 不及格"
End Select
示例3:多条件匹配(字符串)
Dim fruit
fruit = LCase(InputBox("请输入水果名称:"))
Select Case fruit
Case "apple", "pear", "banana"
MsgBox "这是常见水果"
Case "durian", "mangosteen"
MsgBox "这是热带水果"
Case Else
MsgBox "其他水果"
End Select
3. 嵌套条件语句
If 和 Select Case 可以相互嵌套使用。
Dim age, gender
age = CInt(InputBox("年龄:"))
gender = LCase(InputBox("性别(male/female):"))
If age < 18 Then
MsgBox "未成年"
Else
If gender = "male" Then
MsgBox "成年男性"
Else
MsgBox "成年女性"
End If
End If
4. 小技巧与注意事项
- 条件表达式必须返回 True 或 False
- 字符串比较默认不区分大小写(”ABC” = “abc” 为 True),如需区分大小写,用
StrComp(str1, str2, vbBinaryCompare) - 避免过于复杂的嵌套,超过3层建议拆分成函数
- 用
ElseIf而不是多个独立 If,提高效率 - Select Case 只能对一个表达式进行多值判断,不能直接写复杂条件(如 And/Or)
如果你有具体场景需求(如判断文件是否存在、根据时间段问候、验证输入格式等),告诉我,我可以提供完整的条件判断代码示例!