[VBScript] 程式設計教學:使用控制結構 (Control Structure) 改變程式運行流程

【分享本文】
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

    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 Email
    【追蹤新文章】
    Facebook Twitter Plurk