语法
IF 判断的语法和其他编程语言大同小异
If 条件判断 Then
'条件判断成立时的逻辑
ElseIf 条件判断 Then
'条件判断成立时的逻辑
Else
'条件都不满足时的逻辑
End If
示例
代码:
'函数内对参数进行条件判断
Function judge(num)
If num Mod 2 = 0 Then
Debug.Print "参数是偶数"
ElseIf num Mod 2 <> 0 Then
Debug.Print "参数是奇数"
Else
Debug.Print "非法数字"
End If
End Function
'调用函数
Sub main()
judge 2
End Sub
普通语法
Select Case '要判断的变量、也可使用表达式,相当于对表达式结果的值进行判断
Case Is '大于、小于、等于、大于等于、小于等于、不等于判断
'满足条件的逻辑
Case Is '大于、小于、等于、大于等于、小于等于、不等于判断
'满足条件的逻辑
Case Else
'条件都不满足时的逻辑
End Select
普通语法示例
代码:
'函数内对参数进行条件判断
Function judge(num)
Select Case num
Case Is > 0
Debug.Print "参数是正数"
Case Is < 0
Debug.Print "参数是负数"
Case Else
Debug.Print "参数是0"
End Select
End Function
'调用函数
Sub main()
judge 0
End Sub
运行效果:
数值区间语法
Select Case '要判断的变量、也可使用表达式,相当于对表达式结果的值进行判断
Case 区间起始数值 To 区间结束数值
'满足条件的逻辑
Case Else
'条件都不满足时的逻辑
End Select
数值区间语法示例
代码:
'函数内对参数进行条件判断
Function judge(num)
Select Case num
Case 0 To 100
Debug.Print "参数区间是0-100"
Case 101 To 200
Debug.Print "参数区间是100-200"
Case Else
Debug.Print "参数是其他区间"
End Select
End Function
'调用函数
Sub main()
judge 100
End Sub
IIF判断与其他编程语言中的三目运算差不多,适用于按条件赋值的场景
语法
IIf(条件判断, 满足条件时的返回值, 不满足条件时的返回值)
示例
代码:
'函数内对参数进行条件判断
Function judge(num)
Debug.Print IIf(num Mod 2 = 0, "参数是偶数", "参数是奇数")
End Function
运行效果:
For 循环可以按照次数进行循环,也可以对数组内容进行遍历
语法
For 变量名 = 起始数值 To 终点数值 Step 步长
循环体
Next 变量名
示例
代码:
Sub main()
For num = 1 To 20 Step 2
Debug.Print num
Next num
End Sub
运行效果:
语法
For Each 数组元素临时变量 In 数组
循环体
Next 数组元素临时变量
示例
代码:
Sub main()
Dim items
items = Array(1, 2, 3, 4, 5, 6)
For Each Item In items
Debug.Print Item
Next Item
End Sub
Do Loop Until 是满足条件后中止循环,Do While Loop 是满足条件后开始循环,Do Loop Until 不管条件是否满足,
都会先执行一次循环体内容,也就是说 Do Loop Until 最少会循环一次
语法
Do
循环体
Loop Until 中止条件
示例
代码:
Sub main()
Dim count As Integer
count = 1
Do
count = count + 1
Debug.Print count
Loop Until count = 2
End Sub
语法
Do While 循环条件
循环体
Loop
示例
代码:
Sub main()
Dim count As Integer
count = 1
Do While count < 10
Debug.Print count
count = count + 1
Loop
End Sub
可以使用 End
关键字来提前中止循环,常用的场景是在集合中查找某个元素,当元素找到后就没必要继续循环下去
示例
代码:
Sub main()
Dim count As Integer
count = 1
Do While count < 10
Debug.Print count
count = count + 1
If count = 3 Then
End
End If
Loop
End Sub