VBScript 提供四種程式語言中常見的控制結構:
- 選擇 (selection):依條件執行 (或不執行) 某程式碼區塊
If
Select
- 迭代 (iteration):重覆執行某段程式碼區塊
While
For
If
If
的虛擬碼如下:
If condition Then
' Run code here if `condition` is true
End If
當 condition
符合時才會執行 If
區塊內的程式碼,反之則不執行。
我們還可以為 If
寫二元敘述,參考以下虛擬碼:
If condition Then
' Run code here if `condition` is true
Else
' Run code here if `condition` is not true
End If
當 condition
為真時,會執行 If
區塊內的程式碼;反之,則執行 Else
區塊內的程式碼。
除了二元條件外,還可以用 Else If
撰寫多元敘述。參考以下虛擬碼:
If cond_a Then
' Run code here if `cond_a` is true
Else If cond_b Then
' Run code here if `cond_b` is true
Else
' Run code here if all conditions are not true
End If
敘述的程式碼區塊不會全部執行,只會執行符合條件的那一部分,而且執行後不會繼續執行其他區塊,而會跳出整個 If
敘述。
以下短例使用 If
敘述:
Max = 1
Min = -1
' Set initial random seed.
Randomize
' Get a random integer.
Ans = Int((Max - Min + 1) *Rnd + Min)
If Ans > 0 Then
Wscript.Echo Ans & " is larger than 0"
ElseIf Ans < 0 Then
Wscript.Echo Ans & " is smaller than 0"
Else
Wscript.Echo Ans & " is equal to 0"
End If
Select
Select
算是一種 If
的語法糖,讓程式碼看起來比較簡潔一些。以下短例使用 Select
敘述:
註:Select
相當於 C 家族的 switch
。
' Create a Date object.
dtmToday = Date()
' Extract day of week part.
dtmDayOfWeek = DatePart("w", dtmToday)
Select Case dtmDayOfWeek
Case 1 Wscript.Echo "Sunday"
Case 2 Wscript.Echo "Monday"
Case 3 Wscript.Echo "Tuesday"
Case 4 Wscript.Echo "Wednesday"
Case 5 Wscript.Echo "Thursday"
Case 6 Wscript.Echo "Friday"
Case 7 Wscript.Echo "Saturday"
End Select
While
While
以條件句 (conditional) 決定迴圈的中止與否,用於執行次數未定的迴圈。以下短例使用 While
敘述:
i = 1
While i <= 10
Wscript.Echo i
i = i + 2
Wend
For
For
可搭配計數器 (counter) 或迭代器 (iterator),用於執行次數已知的迴圈。
以下短例的 For
敘述使用計數器 (counter):
For i = 1 to 10 Step 2
Wscript.Echo i
Next
至於使用集合的 For Each
留待陣列的章節再說明。