Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制
VB的迴圈流程控制 若我們要列印出100個Hello,若一個一個寫 MsgBox,則需要100個MsgBox(“Hello”),這樣的程 式實在太過繁雜且撰寫耗時,幸好程式語言提 供了迴圈結構(Loop),可以簡化重複動作的 撰寫,只要幾行的程式就可印出100個Hello。 迴圈結構使得程式語言更具威力,且善用了電 腦的好處—不厭其煩的重複執行特定程式敘述, 以完成指定的動作。
迴圈結構之For…Next… 語法:For 迴圈變數=初始值 to 終止值 Step 變量 程式區塊 Next 迴圈變數 重複執行以上動作,直到迴圈變數值超過終止 值。
For…Next範例 Dim i As Integer For i = 1 to 100 MsgBox(“Hello”) Next 變數 i 的值將從1到100,因此將會出現100次 MsgBox。
小提示 在Visual Basic中,可以使用單引號「'」符號或 「Rem」敘述,來標示其後的文字為該列程式 碼的註解,註解可用來說明程式的用法或目的。 當電腦讀到註解時,會略過註解內的資訊。單 引號「'」符號可以插入在敘述中的任何位置, 當作註解的開端。
迴圈之Do…Loop… For-Next迴圈,我們需先確定初始值、終止值與 變量,也就確定迴圈重複的次數,但有些程式 我們無法確定迴圈重複次數,而是依判斷條件 是否成立,來決定是否跳離迴圈。 Do-Loop迴圈可分成使用「While」或「Until」敘 述兩類,而這兩類又可再分成「先做條件式判 斷,再執行程式區塊」與「先執行程式區塊, 再做條件式判斷」兩子類別。
迴圈之Do…Loop… 使用While迴圈 先做條件式判斷,再執行程式區塊 Do While 條件式 程式區塊 Loop 先執行程式區塊,再做條件式判斷 Do Loop While 條件式
Do…Loop範例1 Dim x As Integer = 144 Do While x Mod 2 = 0 x = x / 2 Loop
迴圈之Do…Loop… 使用Until迴圈 先做條件式判斷,再執行程式區塊 Do Until 條件式 程式區塊 Loop 先執行程式區塊,再做條件式判斷 Do Loop Until 條件式
Do…Loop範例2 Dim x As Integer Do x = Val(InputBox(“請輸入一數”)) Loop Until x = 777 請使用者輸入一數,直到輸入值為777才終止迴 圈。
迴圈結構之For Each…Next… 語法:For Each 元素 in 群組物件 程式區塊 Next 此迴圈結構用於取出群組物件中的每個元素, 分別執行程式區塊的敘述。其中元素是變數, 用於指定群組物件中的每個元素;而群組物件 代表物件的集合或陣列。
For Each…Next範例 Dim A(3), x As Integer A(0) = 3 A(1) = 1 A(2) = 4 A(3) = 2 For Each x In A Debug.Print x Next 列出陣列中的元素,但並不保證其順序。
跳出迴圈 迴圈的終止除了迴圈變數值超過終止值,與條 件式成立與否外,尚有強制跳出迴圈的指令。 Exit For強制跳出For-Next迴圈;而Exit Do強制跳 出Do-Loop迴圈。通常寫於迴圈結構內,且這兩 個指令會與If-Then條件判斷結合,當符合某條 件時才跳出迴圈。
Exit Do 範例 Dim i As Integer = 0 Do i = i + 1 If i = 100 Then Exit Do Loop 將 i 逐步遞增至100後跳出迴圈。
巢狀迴圈 如同巢狀的If結構,迴圈結構中可能還會 包含迴圈結構。執行時,先從外部迴圈進 行第一輪,然後待內部迴圈執行結束後, 外部迴圈才會進行到下一輪,此種迴圈結 構,常稱為巢狀迴圈結構。 For i As Integer = 1To 9 外部迴圈 For j As Integer = 1To 9 Debug.Print( i & "*" & j & "=" & i*j) Next 內部迴圈
執行結果 * ** *** **** ***** 巢狀迴圈範例 For i As Integer = 1 To 5 For j As Integer = 1 To i txtOutput.Text &= "*“ Next txtOutput.Text &= vbCrLf Next 執行結果 * ** *** **** *****
第七堂課結束