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 Select3. 嵌套条件语句
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 If4. 小技巧与注意事项
- 条件表达式必须返回True或False
- 字符串比较默认不区分大小写(“ABC” = “abc” 为 True),如需区分大小写,用
StrComp(str1, str2, vbBinaryCompare) - 避免过于复杂的嵌套,超过3层建议拆分成函数
- 用
ElseIf而不是多个独立 If,提高效率 - Select Case 只能对一个表达式进行多值判断,不能直接写复杂条件(如 And/Or)
如果你有具体场景需求(如判断文件是否存在、根据时间段问候、验证输入格式等),告诉我,我可以提供完整的条件判断代码示例!