開源技術教學文件網 使用控制結構 (Control Structure) 改變程式運行流程

最後修改日期為 SEP 2, 2018

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 留待陣列的章節再說明。

分享本文
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Yahoo
追蹤本站
Facebook Facebook Twitter