Download presentation
Presentation is loading. Please wait.
1
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述
2
7-1 強制跳躍的 GoTo
3
強制跳躍 GoTo GoTo 是 "跳到…" 的意思,執行之後可以跳到前面的敘述,也可以跳到後面的敘述,但使用 GoTo 以前必須先有「標記」存在。
4
標記的設定 設定標記的方法十分簡單,只要把標記名稱加在敘述前面,並且用 ':' 分開即可,例如:
5
標記設定 -- 完整的規則 標記必須放在敘述的前面,並且以冒號 ‘:’ 分隔。 標記之後可以不必接續任何敘述,唯 ‘:’ 仍不可省略。
標記的命名規則與變數的命名規則相同,有關變數的命名規則請參考2-5節「變數與常數」。 除了標記名稱可以作為標記之外,數字0~ 也可以作為標記,若以數字作為標記,與敘述分隔用的 ‘:’ 可以省略。 已使用的標記不能重複使用。
6
標記設定 -- 正確的使用法 使 用 例 說 明 123: Print 數字標記 2000 Print "2000 年"
使 用 例 說 明 123: Print 數字標記 2000 Print "2000 年" 數字標記後面的 ':' 可以省略 標記_X: X = 10 標記名稱也可以使用中文 Label_A: 標記後面可以不必接續任何敘述
7
標記設定 -- 錯誤的使用法 錯誤的使用例 說 明 9999999999: X = 10 數字標記超過 0~2147483647 的範圍
說 明 : X = 10 數字標記超過 0~ 的範圍 Label-X: Print 使用減號 '-',不符合命名規則 100: Print "100" 100: Print "200" 標記 100 重複使用
8
GoTo 敘述 GoTo 可以跳到前面的敘述,也可以跳到後面的敘述,但是當 GoTo 跳到前面的敘述時,要特別小心,請觀察以下例子:
9
GoTo 敘述 -- 無窮迴圈 每次執行到 GoTo L10 之後,都會回到前面的敘述重新執行,進入所謂的無窮迴圈,結果會發現整個系統都變得不能操作了,即使是按結束命令鈕也沒有效,這時候解救方法是按下 Ctrl 鍵+Break 鍵,讓 VB 進入中斷模式,然後再結束程式。
10
GoTo 敘述 -- 溢位的示誤訊息(1) 出現在無窮迴圈的另一個現象是溢位的示誤訊息,例如以下是一個連續列印 1、2、3…的程式:
11
GoTo 敘述 -- 溢位的示誤訊息(2) 這是一個無窮迴圈的程式,所以迴圈中的 I% = I% + 1 會不斷地被執行,使 I% 值一直往上加,最後加到32768,就超過了整數型別的最大容量,所以 VB 便發出溢位的訊息。
12
If-Then-GoTo 避免無窮迴圈,可在 GoTo 前面增加條件式的判斷,以決定是否讓 GoTo 繼續往回跳,使用的敘述是: If 條件式 Then GoTo 標記 假如 '條件式' 成立,就跳到 '標記' 所在的敘述來執行,否則就向下執行。
13
If-Then-GoTo 的實例研究 改良第四章 score.vbp 專案程式 -- 如果使用者輸入的成績小於0或大於100,則要求其重新輸入。原程式如下: Private Sub Command1_Click() A = Val(InputBox("請輸入[數學]成績")) B = Val(InputBox("請輸入[英文]成績")) C = Val(InputBox("請輸入[國文]成績")) Print "平均分數="; (A + B + C) / 3 End Sub
14
If-Then-GoTo 的實例研究 – Step1
檢查使用者輸入的「數學」成績是否位於0~ 100區間,如果不是,則跳回 「A = Val(InputBox(“請輸入[數學]成績”))」敘 述之前,程式如下: 因此只要A小於0或A大於100,程式都會跳回 L10的標記位置,緊接著又會執行 InputBox 敘 述,要求使用者重新輸入數學成績。 L10: A = Val(InputBox("請輸入[數學]成績(0~100)")) If A < 0 Or A > 100 Then Goto L10
15
If-Then-GoTo 的實例研究 – Step2
改良後完整的程式如下: Private Sub Command1_Click() L10: A = Val(InputBox("請輸入[數學]成績(0~100)")) If A < 0 Or A > 100 Then Goto L10 L20: B = Val(InputBox("請輸入[英文]成績(0~100)")) If B < 0 Or B > 100 Then Goto L20 L30: C = Val(InputBox("請輸入[國文]成績(0~100)")) If C < 0 Or C > 100 Then Goto L Print "平均分數="; (A + B + C) / 3 End Sub
16
7-2 有條件執行的 If 敘述
17
If-Then 格式 其實 If-Then 不一定要配合 GoTo 一起使用,比較通則性的 If-Then 格式是:
如果 '條件式' 成立,就執行 Then 之後的 '敘述',否則繼續向下執行。其中 '敘述' 部份可以是任何合乎規定的敘述,例如將它換成 GoTo 敘述,就變成了上一節所看到的 If-Then-GoTo 格式,If-Then 敘述在程式設計中十分常用。
18
If-Then 的實例練習 求 X 的絕對值 X = Val(InputBox("請輸入一數值")) If X < 0 Then X = -X Print X
19
If-Then – Then 後面執行多行敘述
If I < 10 Then Print I : I = I + 1 : GoTo L 敘述 1 敘述 敘述 3
20
If-Then 的實例研究 如果使用者輸入的成績小於 0 或大於 100,則先顯示一個訊息窗,然後才要求其重新輸入。
Private Sub Command1_Click() L10: A = Val(InputBox("請輸入[數學]成績(0~100)")) If A < 0 Or A > 100 Then MsgBox "超出範圍, 請重輸入!" : Goto L10 L20: B = Val(InputBox("請輸入[英文]成績(0~100)")) If B < 0 Or B > 100 Then MsgBox "超出範圍, 請重輸入!" : Goto L20 L30: C = Val(InputBox("請輸入[國文]成績(0~100)")) If C < 0 Or C > 100 Then MsgBox "超出範圍, 請重輸入!" : Goto L Print "平均分數="; (A + B + C) / 3 End Sub
21
結構化的 If-Then 格式(1) 當 Then 後面的敘述很多時,整個 If-Then 敘述將會拖得很長,對閱讀來說十分不方便,所以 VB 又提供了另一種比較結構化的 If-Then 格式:
22
結構化的 If-Then 格式(2) 介於 Then 及 End If 間的敘述稱「敘述區塊」, 所以有時候這個格式會表示成:
而在寫法上,我們通常會將整個敘述區塊後退幾 格,讓程式更容易閱讀,例如: If 條件式 Then 敘述區塊 End If
23
If-Then-Else 格式(1) 有時候我們會說:「如果…就做第一件事,否則就做第二件事。」,這表示成 VB 的敘述是:
24
If-Then-Else 格式(2) 結構化的寫法:
25
If-Then-Else 實例研究(1) 在所完成的「計算平均分數」程式中,最後以訊息窗顯示平均分數是否及格。
26
If-Then-Else 實例研究(2) Private Sub Command1_Click() L10: A = Val(InputBox("請輸入[數學]成績(0~100)")) If A < 0 Or A > 100 Then MsgBox "超出範圍, 請重輸入!" : Goto L10 L20: B = Val(InputBox("請輸入[英文]成績(0~100)")) If B < 0 Or B > 100 Then MsgBox "超出範圍, 請重輸入!" : Goto L20 L30: C = Val(InputBox("請輸入[國文]成績(0~100)")) If C < 0 Or C > 100 Then MsgBox "超出範圍, 請重輸入!" : Goto L Average = (A + B + C) / If Average > = 60 Then MsgBox "平均分數=" & Average & ", 及格" Else MsgBox "平均分數=" & Average & ", 不及格" End If End Sub
27
巢狀 If 敘述 由於 If 敘述本身也是一種敘述,所以它也可以成為另一個 If 裡的一個敘述,而形成了 If 裡面又有 If 的情形,這種情形即稱為巢狀 If 敘述,例如:
28
巢狀 If 敘述 -- 實例研究(1) 輸入一正整數 N,並且判斷這個正整數是一位數、二位數、或是三位數以上 。
29
巢狀 If 敘述 -- 實例研究(2) Private Sub Command1_Click() L10: N = Val(InputBox(“請輸入一正整數”)) If N < 0 Then MsgBox “請輸入正整數!” : Goto L If N < 100 Then ’ 判斷是否小於三位數 If N < 10 Then ’ 判斷是否為一位數 Print N; “一位數” ’ 敘述區塊 Else Print N; “二位數” ’ 敘述區塊 End If Else Print N; “三位數(含)以上” ’ 敘述區塊 End If End Sub
30
逐一過濾條件的 ElseIf 先判斷第一條件,如果第一條件不成立,再判斷第二條件的情形,像這樣一一過濾條件的句子,在 VB 裡的敘述是:
31
逐一過濾條件的 ElseIf 例子 以前面判斷一正整數 N 為幾位數的程式為例,利用 ElseIf 逐一過濾條件,程式會變得比較容易閱讀,如下: If N < 10 Then Print N; "一位數" ElseIf N < 100 Then Print N; "二位數" ElseIf N < 1000 Then Print N; "三位數" Else Print N; "四位數(含)以上" End If
32
7-3 多執行路徑的 Select Case 敘述
33
Select Case敘述(1) Select Case 敘述,則可以將程式分成更 多的執行路徑,其格式如下:
Select Case 資料或運算式 Case 條件值 敘述區塊 Case 條件值 敘述區塊 : Case 條件值 N 敘述區塊 N Case Else 敘述區塊 N+1 End Select
34
Select Case敘述(2) 資料(或運算式)的值符合條件值 1 時,執行敘述區塊 1, 符合條件值 2 時,執行敘述區塊 2…,符合條件值 N 時,執行敘述區塊 N,如果任何條件值都不符合,則 執行敘述區塊 N+1。
35
Select Case敘述 -- 實例一(1) Select Case 在程式設計中非常實用,例如電腦遊戲開始之前,經常都有讓使用者選擇遊戲等級的畫面,此時就可以用Select Case 來加以判別。
36
Select Case敘述 -- 實例一(2) Private Sub Command1_Click() N = Val(InputBox("遊戲等級:1.初級 2.進階 3.專家")) Select Case N Case Print "初級" Case Print "進階" Case Print "專家" Case Else Print "資料輸入錯誤" End Select End Sub
37
Select Case敘述 -- 實例二 Select Case也可以適用於非數值性的資料,例:
Private Sub Command1_Click() S = InputBox("請輸入英文的四季名稱") Select Case S Case "spring" Print "春天" Case "summer" Print "夏天" Case "autumn" Print "秋天" Case "winter" Print "冬天" End Select End Sub
38
Select Case敘述 -- 實例三 在 'Case 條件值' 中的條件值,並不限定於單一的常數資料,它還可以是一個範圍的資料,例如:
Private Sub Command1_Click() age = Val(InputBox("請輸入年齡")) Select Case age Case 0 To 5 ' age 等於 0 到 5,都符合這個條件 S = "普通級" Case 6,7,8,9,10,11 ' 逐一列出條件值 S = "保護級" Case 12 To S = "輔導級" Case Is >= ' age ≧ 18,都符合這個條件 S = "限制級" End Select Print age; "歲可看「"; S; "」電影" End Sub
39
7-4 具重複執行能力的迴圈
40
具重複執行能力的迴圈 所謂迴圈就是重複執行同一個(或一些)敘述,使程式更加精簡。
我們在7-1節利用 GoTo 及 If-Then 敘述,寫了 一個從1列印到10的程式,就是一個典型的迴 圈程式,不過用 GoTo 來寫迴圈程式的缺點是 不容易閱讀且容易出錯,因此VB另外提供了 幾種控制迴圈的敘述,它們有:For-Next、 While-Wend、及Do-Loop。
41
計次執行的 For-Next(1) 如果已經確定迴圈的執行次數,使用 For-Next 敘述最方便,例如從1列印到10的程式是:
在這個程式中,最重要的一個地方是變數 I, 它在迴圈裡的角色是一個計次器,而計次範圍 是從1到10(1 To 10),所以迴圈內的 Print I 會 執行10次,也就可以從1列印到10。 For I = 1 To Print I Next I
42
計次執行的 For-Next(2) For-Next 的格式:
撰寫 For-Next 迴圈時,若步進值等於1, 則可以省略格式中的 Step 步進值,例如 「For I = 1 To 10」即表示「For I = 1 To 10 Step 1」。 For 計次變數 = 起始值 To 終止值 Step 步進值 敘述區塊 Next 計次變數
43
計次執行的 For-Next(3)-1 For-Next 是怎麼執行迴圈的呢?其實跟起始值、終止值、及步進值都有關係,讓我們以前面的程式為例,來研究 For – Next 的執行過程:
44
計次執行的 For-Next(3)-2 第一次進入迴圈時,計次變數 I 會被設定為起始值。
執行過迴圈內的敘述,來到 Next I,Next I 有兩個作用,首先會將 I 值加上步進值,然後回到迴圈的前頭,如此循環,形成迴圈。 最後這個程式在 I 值等於11時脫離迴圈。
45
For-Next 步進值>1時的例子 起始值等於3,終止值等於25,步進值等於6:
這個例子 I 值從 3 開始執行,每執行到 Next I 時, I 值加 6,所以 I 值的變化過程是 3、9、 15、21、27,到了 27 時,由於大於終止值25, 不再進入迴圈,所以印出的值有 3、9、15、21。 For I = 3 To 25 Step Print I Next I
46
For-Next 步進值<0時的例子(1)
For-Next 敘述中的步進值也可以是負數,但此時的起始值必須大於終止值,而 For-Next 判斷脫離迴圈的條件則變成:計次變數值<終止值,例如: For I = 10 To 1 Step Print I Next I
47
For-Next 步進值<0時的例子(2)
For I = 10 To 1 Step Print I Next I
48
For-Next 實例研究1-1 計算 Sum = 1 + 2 + 3 + ... + 20。這個題目很簡單,寫成以下程式如何呢?
Sum = Print Sum
49
For-Next 實例研究1-2 我們可以把 Sum = … + 20 表示成:
50
For-Next 實例研究1-3 而由於 Sum 的初值等於0,所以「Sum = Sum … + 20」等於「Sum = … + 20」,因此「Sum = … + 20」可以視為 Sum = 0、Sum = Sum + 1、Sum = Sum + 2 … Sum = Sum + 20 連續運算的結果, 所以使用 For 迴圈來計算此一運算式最為合適,程式如下: Sum = 0 For I = 1 To Sum = Sum + I Next I Print Sum
51
For-Next 實例研究2-1 計算 Sum = 1 + 4 + 7 + 10 + … + 301。
Sum = 0 For I = 1 To 301 Step Sum = Sum + I Next I Print Sum
52
While-Wend 迴圈 如果程式執行前已經確定迴圈要執行的次數, 使用 For-Next 十分方便,如果不能確定迴圈要 執行的次數,可以考慮使用 While-Wend 迴圈, 其格式是: 意思是:只要 '條件式' 成立,就繞迴圈執行。 而每繞迴圈一次,須重新判斷條件式。 While 條件式 敘述區塊 Wend
53
While-Wend vs. For-Next
例如從 1 列印到 10 的程式也可以寫成: 這比起使用 For-Next 多了兩行程式,可見已知 迴圈的執行次數時,還是使用 For-Next 比較方 便。以下例子則因不知迴圈會執行幾次,適合 用 While-Wend。 I = 1 While I <= 10 ' 只要 I ≦ 10,就繞迴圈執行 Print I I = I + 1 Wend
54
While-Wend 的實例一 計算 2048 是 2 的幾次方。 程式如下:
Private Sub Command1_Click() N = 0 ' 先假設是 0 次方 While 2^N < ' 2 的 N 次方還沒達到 N = N + 1 ' 增加 1 次方,再試試看 Wend Print "2048 是 2 的"; N; "次方" End Sub
55
While-Wend 的實例二 While-Wend 也經常被應用在連續性的資料輸入上面,例如:持續讀取使用者輸入的資料,並加以判斷處理,直到使用者輸入了 “quit” 為止。 程式如下: Private Sub Command1_Click() X = InputBox(“請輸入指令”) While X <> “quit” ' 若輸入 ≠ “quit”,即進入迴圈 MsgBox “您輸入了 ” + X X = InputBox(“請輸入指令”) ' 繼續讀取資料 Wend MsgBox "您輸入了 quit,再見!" End Sub
56
迴圈的組成要件 舉凡迴圈都是由 “繞行迴圈” 及 “脫離迴圈 或繼續執行的條件式” 兩種敘述所組成的,以 While-Wend 為例:
其中 “繞行迴圈” 敘述的功用就跟 GoTo 一樣, 用來跳回迴圈的前頭,至於 “脫離迴圈或繼續 執行的條件式”,則是讓迴圈有條件地結束掉。
57
Do-Loop 迴圈(1) 最陽春的 Do-Loop 迴圈: 如果我們這樣寫:
將是一個無窮迴圈,因為迴圈中缺了 "脫離迴圈或繼續 執行的條件式"。 I = 1 Do Print I I = I + 1 Loop
58
Do-Loop 迴圈(2) 為了讓 Do-Loop 能夠結束迴圈,VB 提供了 While 及 Until 兩種條件判斷的敘述,來搭配 Do-Loop 使用,其中: 格式一 格式二 While 表示 "只要…,就…" Until 表示 "做…,直到…" Do While 條件式 敘述區塊 Loop Do 敘述區塊 Loop Until 條件式
59
Do-Loop 迴圈(3) 格式一例子 Do-While-Loop表示:只要 '條件式' 成立 ,就繼續執行迴圈。例如:
I = 1 Do While I <= 10 ' 只要 I ≦ 10,就繼續執行迴圈, Print I ' 而當 I > 10 時,即脫離迴圈。 I = I + 1 Loop
60
Do-Loop 迴圈(4) 格式二例子 Do-Loop-Until 表示:執行迴圈,直到 '條 件式' 成立。例如:
I = 1 Do ’ 執行迴圈,… Print I I = I + 1 Loop Until I > 10 ’ 直到 I > 10 為止, ’ 也就是 I > 10 時,脫離迴圈。
61
Do-Loop 迴圈(5)-1 如果比較 Do-While-Loop 及 Do-Loop-Until,我們發現 Do-While-Loop 是條件式成立時繼續執行迴圈,而 Do-Loop-Unitl 是條件式成立時脫離迴圈,除此之外,Do-While-Loop 會先判斷條件式再執行迴圈,而 Do-Loop-Until 則是先執行迴圈再判斷條件式,所以:
62
Do-Loop 迴圈(5)-2 I = 11 Do While I <= 10 ' 第一次判斷條件式就不成立,所以 Print I ' 迴圈內的敘述一次也沒有執行。 I = I + 1 Loop I = 11 Do ‘ 先進入迴圈執行一次 Print I I = I + 1 Loop Until I > 10 ’ 也是第一次判斷, 條件式就不成立, ' 但迴圈內的敘述至少執行過一次。
63
Do-Loop 迴圈(6) 以下是 Do-While-Loop 及 Do-Loop-Until 的比較表: Do-Loop 格式
條件式成立時 迴圈及條件式的先後次序 Do-While-Loop 繼續執行迴圈 先判斷條件式,再執行迴圈 Do-Loop-Until 脫離迴圈 先執行迴圈,再判斷條件式
64
Exit Do 與 Do-Loop(1) Exit Do 是脫離 Do-Loop 迴圈的意思,例如:
65
Exit Do 與 Do-Loop(2) 如果利用 Do-While-Loop 及 Do-Loop-Until 來撰寫迴圈,判斷迴圈繼續執行或脫離的條件式,不是放在迴圈的前頭,就是後頭,但如果利用 Exit Do,再配合 If-Then 敘述的使用,則可以把繼續執行或脫離迴圈的條件式放在迴圈內的任何位置,如下: Do : If 條件式 Then Exit Do : Loop
66
Exit Do 與 Do-Loop(3) 例如: 此例中,脫離迴圈時的 I 值等於 10,與前面 Do- While-Loop 或 Do-Loop-Until 的 I 值等於 11 不 同。 I = 1 Do Print I If I = 10 Then Exit Do ' 當I=10 時,立刻跳出,不再執行以下敘述 I = I + 1 Loop
67
巢狀迴圈(1) 在迴圈裡面也可以又有迴圈,這種情形即稱為巢狀迴圈,例如:
68
巢狀迴圈(2) 這個程式執行後,其輸出結果如下:
外迴圈變數 內迴圈變數 內迴圈變數 內迴圈變數 3 外迴圈變數 內迴圈變數 內迴圈變數 內迴圈變數 3 外迴圈變數 內迴圈變數 內迴圈變數 內迴圈變數 3
69
巢狀迴圈(3) 我們可以看出外迴圈每執行一次,內迴圈即執行一週期(本例是 3 次),所以內迴圈內的敘述總共會被執行 3×3 次,即外迴圈執行次數×內迴圈一週期的執行次數。 在實際應用上,內迴圈的執行次數也經常會由外迴圈變數的值來控制。
70
巢狀迴圈(4) 例子: 結果印出: For I = 1 To Print "I ="; I, "J ="; For J = 1 To I ' 內迴圈的執行次數,由外迴圈 Print J; ' 變數 I 的值來控制。 Next J Print Next I I = J = 1 I = J = 1 2 I = J = I = J = I = J =
71
7-5 程式的流程追蹤
72
逐行執行程式(1) 在程式的開發中,如果程式執行結果不正確,我們也希望能夠逐行執行,以找出問題之所在。
在 VB 裡面,如果我們按開始命令鈕啟 動程式,程式會一路執行下去,直到執 行完所有的敘述為止,如果我們想逐行 執行程式,啟動程式的方法必須改按 F8 鍵或功能表的「偵錯/逐行」。
73
逐行執行程式 – 實例練習 以下程式在計算存款一年後的總金額,總金額 =本金×(1+年利率)。
首先在表單上佈置一命令鈕,並且將表單的 AutoRedraw 屬性設定為 True,然後把以上程 式寫到命令鈕裡面。 Private Sub Command1_Click() V = ' 本金 I = ' 年利率 S = V * (1 + I) ' 計算總金額 Print S End Sub
74
逐行執行程式 – 實例練習 Step1 按下 F8鍵啟動程式的執行,然後按下表單上的命令鈕 啟動上述程式,接著我們可以看到程式視窗被彈到最 前端,如下: 請注意程式的第一行前面有箭號,箭號的目的在指出 下一個被執行的敘述。
75
逐行執行程式 – 實例練習 Step2 接著每按 F8鍵一次,VB 就會執行箭號所指的敘述,然後把箭號移到下一個敘述。
76
逐行執行程式 – 實例練習 Step3 按 F8鍵執行 V = 10000。按 F8鍵執行 I = 0.07。按 F8鍵執行 S = V * (1 + I)。最後箭號移到 Print S上。 您是否注意到每按 F8鍵執行一行敘述後, VB 都會進入中斷模式,所以我們可以按 Ctrl 鍵 + G 鍵或功能表的「檢視/即時運 算視窗」把即時運算視窗調到最前端, 然後利用它來檢驗程式執行的結果。
77
逐行執行程式 – 實例練習 Step4 例如以下就是利用即時運算視窗來檢驗 V、I、 S 的值:
最後再按下 F8 鍵執行 Print S,然後檢視表單, 可看到 Print S 執行的結果。
78
逐行執行程式 – F8鍵與開始命令鈕 F8 鍵是逐行執行程式,開始命令鈕則是一路執行下去,不過這兩種執行模式是可以切換的。如果一開始按 F8 鍵逐行執行程式,中途想進入一路執行的模式,只要再按開始命令鈕即可;如果一開始就按開始命令鈕一路執行,想中途切到逐行執行的模式,必須先進入中斷模式(按中斷命令鈕或 Ctrl 鍵 + Break 鍵 ),接著才可以利用 逐行執行程式。
79
設定程式的中斷點 逐步執行對於檢驗程式的執行過程,當程式很大,或迴圈重複執行的次數很多時,逐行執行就要花費很多時間,所以有時候我們希望 VB 不要每執行一行都中斷一次,而只要在我們設定的地方中斷就好了,這樣子可以省去逐步按 F8 鍵,逐行執行所浪費的時間。
80
設定程式的中斷點 -- 實例練習 以前一個程式為例來說明:
Private Sub Command1_Click() V = I = S = V * (1 + I) ' 希望在此設定中斷點 Print S End Sub
81
設定程式的中斷點 -- 實例練習Step1 打開程式視窗,並且把輸入游標移到欲中斷的 敘述上,然後按下 F9鍵 ,此時該行敘述前面 會出現小圓圈,如下: 這表示我們已經成功地把中斷點設定在這行敘 述了。
82
設定程式的中斷點 -- 實例練習Step2 啟動程式的方法不是按下 F8 鍵逐行執行的,而是按下一路執行的開始命令鈕,然後再按下表單上的命令鈕,啟動上述程式,程式就會一直執行到中斷點的地方才暫停,如下:
83
設定程式的中斷點 -- 實例練習Step3 所謂程式暫停就是進入中斷模式,所以接下來我們可以使用即時運算視窗、按 F8 鍵逐行執行,或者再按開始命令鈕繼續執行。
84
設定程式的中斷點 -- 實例練習Step4 設定好的中斷點,也可以依需要將它們清除,方法是把輸入游標移到中斷點的敘述上,按下 F9鍵 ,此時敘述前面的小圓圈會消失,就表示清除中斷點了。
85
設定程式的中斷點 -- Stop 敘述(1) 以上方法是利用 F9鍵 來設定中斷點,有一個 敘述 – Stop 也有同樣的功效,例如:
這樣子 VB 每執行到 Stop 敘述時,就會暫停程 式進入中斷模式。 Private Sub Command1_Click() V = I = Stop ' VB 執行到此一敘述即會進入中斷模式 S = V * (1 + I) Print S End Sub
86
設定程式的中斷點 -- Stop 敘述(2) Stop 敘述的功用與 F9鍵 完全相同,但Stop 敘述可以隨著專案的儲存而一起被儲存起來,而利用 F9鍵 所設定的中斷點,則會在退出 VB 時一併消失掉。
Similar presentations