編程語言的基礎除了數據類型, 就是控制結構了. 所謂控制結構, 主要就是分支和循環.編程
廢話不說, 直接示例代碼:編程語言
1 Sub Test() 2 If 2 > 1 Then 3 Debug.Print "xxxx" 4 End If 5 End Sub
執行後輸出:oop
xxxx
if-elseif-else 結構code
1 Option Explicit 2 3 Sub Test() 4 score 55 5 score 65 6 score 85 7 score 95 8 End Sub 9 10 Function score(points As Integer) 11 12 If points > 0 And points < 60 Then 13 Debug.Print "不及格" 14 ElseIf points > 80 And points < 90 Then 15 Debug.Print "良好" 16 ElseIf points >= 90 Then 17 Debug.Print "優秀" 18 Else 19 Debug.Print "及格" 20 End If 21 22 End Function
輸出結果:ci
不及格 及格 良好 優秀
select-case 結構it
1 Option Explicit 2 3 Sub Test() 4 score 55 5 score 65 6 score 85 7 score 95 8 End Sub 9 10 Function score(points As Integer) 11 12 Select Case points 13 Case 90 To 100 14 Debug.Print "優秀" 15 Case 80 To 90 16 Debug.Print "良好" 17 Case 60 To 80 18 Debug.Print "及格" 19 Case 0 To 60 20 Debug.Print "不及格" 21 End Select 22 23 End Function
輸出結果:io
不及格 及格 良好 優秀
其實異常處理, 也是一種條件判斷, 只不過只將異常做爲條件class
1 Option Explicit 2 3 Sub Test() 4 Dim x As Integer 5 6 On Error GoTo finally 7 x = 10 / 0 8 9 finally: 10 Debug.Print "發生錯誤" 11 12 End Sub
輸出結果:基礎
發生錯誤
1 Option Explicit 2 3 Sub Test() 4 Dim n As Integer 5 6 Debug.Print "打印 1 ~ 10 的奇數" 7 For n = 1 To 10 Step 2 8 Debug.Print n 9 Next n 10 11 End Sub
執行結果:select
打印 1 ~ 10 的奇數 1 3 5 7 9
1 Option Explicit 2 3 Sub Test() 4 Dim n As Variant 5 6 Debug.Print "打印 1 ~ 10 的奇數" 7 For Each n In Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 8 If Not n Mod 2 = 0 Then 9 Debug.Print n 10 End If 11 Next 12 13 End Sub
執行結果:
打印 1 ~ 10 的奇數 1 3 5 7 9
1 Option Explicit 2 3 Sub Test() 4 Dim n As Integer 5 6 Debug.Print "打印 1 ~ 10 的奇數" 7 Do 8 n = n + 1 9 10 If Not n Mod 2 = 0 Then 11 Debug.Print n 12 End If 13 Loop Until n >= 10 14 15 n = 0 16 17 Debug.Print "打印 1 ~ 10 的奇數" 18 Do Until n >= 10 19 n = n + 1 20 21 If Not n Mod 2 = 0 Then 22 Debug.Print n 23 End If 24 Loop 25 26 End Sub
執行結果:
打印 1 ~ 10 的奇數 1 3 5 7 9 打印 1 ~ 10 的奇數 1 3 5 7 9
上例中, until 的位置對循環的影響:
示例:
1 Option Explicit 2 3 Sub Test() 4 Dim n As Integer 5 6 n = 0 7 Do 8 Debug.Print "會運行" 9 Loop Until n = 0 10 11 n = 0 12 Do Until n = 0 13 Debug.Print "不會運行" 14 Loop 15 16 End Sub
執行結果以下:
會運行
1 Option Explicit 2 3 Sub Test() 4 Dim n As Integer 5 6 Debug.Print "打印 1 ~ 10 的奇數" 7 Do 8 n = n + 1 9 10 If Not n Mod 2 = 0 Then 11 Debug.Print n 12 End If 13 Loop While n < 10 14 15 n = 0 16 17 Debug.Print "打印 1 ~ 10 的奇數" 18 Do While n < 10 19 n = n + 1 20 21 If Not n Mod 2 = 0 Then 22 Debug.Print n 23 End If 24 Loop 25 26 End Sub
執行結果和 until 同樣:
打印 1 ~ 10 的奇數 1 3 5 7 9 打印 1 ~ 10 的奇數 1 3 5 7 9
while vs until: