18堂征服Visual Basic6.0 程式設計

Download Report

Transcript 18堂征服Visual Basic6.0 程式設計

VISUAL BASIC 2010
程式設計16堂特訓
第七堂
VB的迴圈流程控制
VB的迴圈流程控制
• 若我們要列印出100個Hello,若一個一個寫
MsgBox,則需要100個MsgBox(“Hello”),這樣的程
式實在太過繁雜且撰寫耗時,幸好程式語言提
供了迴圈結構(Loop),可以簡化重複動作的
撰寫,只要幾行的程式就可印出100個Hello。
• 迴圈結構使得程式語言更具威力,且善用了電
腦的好處—不厭其煩的重複執行特定程式敘述,
以完成指定的動作。
迴圈結構之FOR…NEXT…
語法:For 迴圈變數=初始值 to 終止值 Step 變量
程式區塊
Next 迴圈變數
• 迴圈會先比較迴圈變數之值(即初始值),是
否超過終止值,若是則跳出迴圈,執行Next以
後的程式區塊,否則執行程式區塊。
• 每次執行完成程式區塊後,會將迴圈變數值設
定為迴圈變數值加上變量,再判斷是否超過終
止值,若是則跳出迴圈,執行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
• 當 x 有2的因數時,便將它除去,直到除不盡為
止。
迴圈之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
Next
巢狀迴圈範例
• For i As Integer = 1 To 5
For j As Integer = 1 To i
txtOutput.Text &= "*“
Next
txtOutput.Text &= vbCrLf
Next
執行結果
*
**
***
****
*****
第七堂課結束