新观念的VB6教本

上传人:pu****.1 文档编号:568423601 上传时间:2024-07-24 格式:PPT 页数:86 大小:675.50KB
返回 下载 相关 举报
新观念的VB6教本_第1页
第1页 / 共86页
新观念的VB6教本_第2页
第2页 / 共86页
新观念的VB6教本_第3页
第3页 / 共86页
新观念的VB6教本_第4页
第4页 / 共86页
新观念的VB6教本_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《新观念的VB6教本》由会员分享,可在线阅读,更多相关《新观念的VB6教本(86页珍藏版)》请在金锄头文库上搜索。

1、嘶农腐改惨娃苗遏再扣后枣涤倦叶迢翠制扰耸哩罚底列摈猫幸深侩诌先娘新观念的VB6教本新观念的VB6教本新觀念的 VB6 教本第七章 讓程式轉彎的控制敘述 蓄砰祥灰扎凡唆钦打矽蛙促钞表立省屏缚边毯生恶绞迪菲器首吵往塑屯傣新观念的VB6教本新观念的VB6教本7-1 強制跳躍的 GoTo待聊廖痔极幌铡驻楔瘪绒吗莆烧确老汇邹斜指踞异鞠咏怂名火呈淖轩仪咬新观念的VB6教本新观念的VB6教本強制跳躍 GoTonGoTo 是 跳到 的意思,執行之後可以跳到前面的敘述,也可以跳到後面的敘述,但使用 GoTo 以前必須先有標記存在。 屉付凹杠措镍相忙瓤野问干仍贩荆砾央匙狠黄桂倚桨署磋揭柒脊请忍待花新观念的VB6教

2、本新观念的VB6教本標記的設定 n設定標記的方法十分簡單,只要把標記名稱加在敘述前面,並且用 : 分開即可,例如: 恐楚泅消彼睁氢呈永蒂梭慨妙姿帮桓崎撮策撼帜莫吻属瘫崎亦垦耳溺越粘新观念的VB6教本新观念的VB6教本標記設定 - 完整的規則n標記必須放在敘述的前面,並且以冒號 : 分隔。n標記之後可以不必接續任何敘述,唯 : 仍不可省略。n標記的命名規則與變數的命名規則相同,有關變數的命名規則請參考2-5節變數與常數。n除了標記名稱可以作為標記之外,數字02147483647也可以作為標記,若以數字作為標記,與敘述分隔用的 : 可以省略。 n已使用的標記不能重複使用。 徊嚷撕乃迪茧酶狠坝龋骆近

3、埂仟专暖腋飘虚绪荧媳航掏胜却咬琳逸脆饲娄新观念的VB6教本新观念的VB6教本標記設定 - 正確的使用法 使 用 例 說 明 123: Print 數字標記 2000 Print 2000 年 數字標記後面的 : 可以省略 標記_X: X = 10 標記名稱也可以使用中文 Label_A: 標記後面可以不必接續任何敘述 罗谈肇琼剪瞳旬雁蕾剐吾默底撼搏讨萧嘶苛屠浦龚贤香煎憾括验敦疵脚未新观念的VB6教本新观念的VB6教本標記設定 - 錯誤的使用法 錯誤的使用例 說 明 9999999999: X = 10 數字標記超過 02147483647 的範圍 Label-X: Print 使用減號 -,不

4、符合命名規則 100: Print 100 100: Print 200標記 100 重複使用 织斩爽懈题盗职铁猾六驴缄稀槐虱刮射斧疚显该茂摘轻瞻空忠擒野拎演秦新观念的VB6教本新观念的VB6教本GoTo 敘述 nGoTo 可以跳到前面的敘述,也可以跳到後面的敘述,但是當 GoTo 跳到前面的敘述時,要特別小心,請觀察以下例子: 夺筋蔷径缠删炯咖订橡貉眶抠全堆哼辆炸拆寂锌索波刁鞘穷弄暂皇笼坦痴新观念的VB6教本新观念的VB6教本GoTo 敘述 - 無窮迴圈 每次執行到 GoTo L10 之後,都會回到前面的敘述重新執行,進入所謂的無窮迴圈無窮迴圈無窮迴圈無窮迴圈,結果會發現整個系統都變得不能操

5、作了,即使是按結束命令鈕也沒有效,這時候解救方法是按下 Ctrl 鍵+Break 鍵,讓 VB 進入中斷模式,然後再結束程式。 矾晋林姬阴詹寥嫁显涌椅躲缠奠姑妆肖暂讹虹莱鞠弟藉禾齐纳锯鬃友列严新观念的VB6教本新观念的VB6教本GoTo 敘述 - 溢位的示誤訊息(1) n出現在無窮迴圈的另一個現象是溢位溢位的示誤訊息,例如以下是一個連續列印 1、2、3的程式: 墅姚窘准掀冰型丫落陪允盗炕宪揽视巩憨俯幕粱杯颤秧痊宁兔傻岩狮拿犹新观念的VB6教本新观念的VB6教本GoTo 敘述 - 溢位的示誤訊息(2)這是一個無窮迴圈的程式,所以迴圈中的 I% = I% + 1 會不斷地被執行,使 I% 值一直往

6、上加,最後加到32768,就超過了整數型別的最大容量,所以 VB 便發出溢位的訊息。早厩尼柠滑赞脆粕绕砰洗逝舜视真荐掘桥忽缸众呐拟蔷碧预枝蒜除途包霸新观念的VB6教本新观念的VB6教本If-Then-GoTo n避免無窮迴圈,可在 GoTo 前面增加條件式的判斷,以決定是否讓 GoTo 繼續往回跳,使用的敘述是: If 條件式 Then GoTo 標記 n假如 條件式 成立,就跳到 標記 所在的敘述來執行,否則就向下執行。 小桓潮夺氟胁嘶引攘梦泻站遏蓟肤讫屈蒲览跪欢癣剐办寸肃靡淘颤巢郁木新观念的VB6教本新观念的VB6教本If-Then-GoTo 的實例研究改良第四章 score.vbp 專案

7、程式 - 如果使用者輸入的成績小於0或大於100,則要求其重新輸入。原程式如下:Private Sub Command1_Click()Private Sub Command1_Click() A = Val(InputBox( A = Val(InputBox(請輸入請輸入 數學數學 成績成績) B = Val(InputBox( B = Val(InputBox(請輸入請輸入 英文英文 成績成績) C = Val(InputBox( C = Val(InputBox(請輸入請輸入 國文國文 成績成績) Print Print 平均分數平均分數=; (A + B + C) / 3=; (A

8、+ B + C) / 3End Sub End Sub 匡卿搪苹蹿坟流尺酉度敷忙梗律亥着桃绕约宠非乞江串匀寂通笛接箩迎抱新观念的VB6教本新观念的VB6教本If-Then-GoTo 的實例研究 Step1n檢查使用者輸入的數學成績是否位於0100區間,如果不是,則跳回A = Val(InputBox(“請輸入數學成績”)敘述之前,程式如下:n因此只要A小於0或A大於100,程式都會跳回L10的標記位置,緊接著又會執行 InputBox 敘述,要求使用者重新輸入數學成績。 L10: A = Val(InputBox(請輸入數學成績(0100) If A 100 Then Goto L10拖肃哥茨

9、腹狠馈蝗慢奔朽畜磨亨郎唯孔乐函邱爱贤逮蓄狗梢劫师祟侗萌珠新观念的VB6教本新观念的VB6教本If-Then-GoTo 的實例研究 Step2改良後完整的程式如下:Private Sub Command1_Click()Private Sub Command1_Click()L10:L10: A = Val(InputBox( A = Val(InputBox(請輸入請輸入 數學數學 成績成績(0(0100)100) If A 100 Then Goto If A 100 Then Goto L10L10L20:L20: B = Val(InputBox( B = Val(InputBox(請輸

10、入請輸入 英文英文 成績成績(0(0100)100) If B 100 Then Goto If B 100 Then Goto L20L20L30:L30: C = Val(InputBox( C = Val(InputBox(請輸入請輸入 國文國文 成績成績(0(0100)100) If C 100 Then Goto If C 100 Then Goto L30L30 Print Print 平均分數平均分數=; (A + B + C) / 3=; (A + B + C) / 3End Sub End Sub 呻阴监呜科归架太跃硼唾溯廓材星姚肯乖捍讯抒拙崖枫忻巫遣剑吹拇饶淆新观念的VB6

11、教本新观念的VB6教本7-2 有條件執行的 If 敘述 貌诡卿到勘恨永窝股帘蟹碗樟铀着举发左妄挂晨蛋浸读厕乍祖指撂痈砚箭新观念的VB6教本新观念的VB6教本If-Then 格式 n其實 If-Then 不一定要配合 GoTo 一起使用,比較通則性的 If-Then 格式是: If 條件式 Then 敘述n如果 條件式 成立,就執行 Then 之後的 敘述,否則繼續向下執行。其中 敘述 部份可以是任何合乎規定的敘述,例如將它換成 GoTo 敘述,就變成了上一節所看到的 If-Then-GoTo 格式,If-Then 敘述在程式設計中十分常用。朽买金胃扶澄醋馒队靠录惹辨没滁似隘具沤壮逾咬宋凋包臣箕

12、囊播汹疚兜新观念的VB6教本新观念的VB6教本If-Then 的實例練習 n求 X 的絕對值X = ValX = Val(InputBox( (請輸入一數值請輸入一數值)If X 0 Then X = -XIf X 0 Then X = -XPrint X Print X 挪款勘砚镁罚攘膝粤扑苫鲁兜隶誊燃铡羞置驾魔椿敖黎了缓锌椒统时碗嘴新观念的VB6教本新观念的VB6教本If-Then Then 後面執行多行敘述 n如果要在 Then 後面執行多個敘述,用敘述分隔符號 : 逐一把 Then 後面的敘述隔開來即可,例如: If I 10 Then Print I : I = I + 1 : Go

13、To L10 敘述 1 敘述 2 敘述 3赊涝量征阅获帽鸯赠噶木辽掇猩海倒活栓攒箔强苛扯细蔓术绘豢更倦南术新观念的VB6教本新观念的VB6教本If-Then 的實例研究 n如果使用者輸入的成績小於 0 或大於 100,則先顯示一個訊息窗,然後才要求其重新輸入。Private Sub Command1_Click()Private Sub Command1_Click()L10:L10: A = Val(InputBox( A = Val(InputBox(請輸入請輸入 數學數學 成績成績(0(0100)100) If A 100 Then If A 100 Then MsgBox MsgBox

14、 超出範圍超出範圍超出範圍超出範圍, , 請重輸入請重輸入請重輸入請重輸入! : : Goto L10Goto L10L20:L20: B = Val(InputBox( B = Val(InputBox(請輸入請輸入 英文英文 成績成績(0(0100)100) If B 100 Then If B 100 Then MsgBox MsgBox 超出範圍超出範圍超出範圍超出範圍, , 請重輸入請重輸入請重輸入請重輸入! : : Goto L20Goto L20L30:L30: C = Val(InputBox( C = Val(InputBox(請輸入請輸入 國文國文 成績成績(0(0100)

15、100) If C 100 Then If C 100 Then MsgBox MsgBox 超出範圍超出範圍超出範圍超出範圍, , 請重輸入請重輸入請重輸入請重輸入! : : Goto L30Goto L30 Print Print 平均分數平均分數=; (A + B + C) / 3=; (A + B + C) / 3End SubEnd Sub挑迟怒秤宾照繁否相裙嚼纶收臻摊藻掣乾疙讣捐滚筷苍绊睛舵拿牢正房羊新观念的VB6教本新观念的VB6教本結構化的 If-Then 格式(1) n當 Then 後面的敘述很多時,整個 If-Then 敘述將會拖得很長,對閱讀來說十分不方便,所以 VB 又

16、提供了另一種比較結構化的 If-Then 格式: 膏铭鸽莉挪灵烙讨芹猾优础深峭门亚呸尧俺纱频为歧匆礁辨弗硷仆狡拂刊新观念的VB6教本新观念的VB6教本結構化的 If-Then 格式(2) n介於 Then 及 End If 間的敘述稱敘述區塊,所以有時候這個格式會表示成:n而在寫法上,我們通常會將整個敘述區塊後退幾格,讓程式更容易閱讀,例如: If If 條件式條件式 Then Then 敘述區塊敘述區塊End IfEnd If 俺螟铅升驴又痴隔门昔橡屏偷体臃偿彰映辑助杜丘漾厚亥庙迄朝森纺诀扯新观念的VB6教本新观念的VB6教本If-Then-Else 格式(1) n有時候我們會說:如果就做第

17、一件事,否則就做第二件事。,這表示成 VB 的敘述是: 桂慑盛敲领团轰年震嘛突谬绘瓢兆歉荒叁荚犯卢胯糕憎扇列潞铭巨流虑琉新观念的VB6教本新观念的VB6教本If-Then-Else 格式(2)n結構化的寫法: 剑归蒜破拽培伞馏抬刀精肝剑乱曳拜奄卧牧演塑苇幂分彼谁袭隙戌吝工沛新观念的VB6教本新观念的VB6教本If-Then-Else 實例研究(1)n在所完成的計算平均分數程式中,最後以訊息窗顯示平均分數是否及格。澜章钉组星篇剐搐屈戏幅烽惺毖绷寒屯奄浙灭夜疤沮页柱阴宝吠疮配巴瓮新观念的VB6教本新观念的VB6教本If-Then-Else 實例研究(2)Private Sub Command1_C

18、lick()Private Sub Command1_Click()L10:L10: A = Val(InputBox( A = Val(InputBox(請輸入請輸入 數學數學 成績成績(0(0100)100) If A 100 Then MsgBox If A 100 Then MsgBox 超出範圍超出範圍, , 請重輸入請重輸入! : Goto L10! : Goto L10L20:L20: B = Val(InputBox( B = Val(InputBox(請輸入請輸入 英文英文 成績成績(0(0100)100) If B 100 Then MsgBox If B 100 Then

19、 MsgBox 超出範圍超出範圍, , 請重輸入請重輸入! : Goto L20! : Goto L20L30:L30: C = Val(InputBox( C = Val(InputBox(請輸入請輸入 國文國文 成績成績(0(0100)100) If C 100 Then MsgBox If C 100 Then MsgBox 超出範圍超出範圍, , 請重輸入請重輸入! : Goto L30! : Goto L30 Average = (A + B + C) / 3 Average = (A + B + C) / 3 If Average = 60 Then If Average = 60

20、 Then MsgBox MsgBox 平均分數平均分數平均分數平均分數= & Average & , = & Average & , 及格及格及格及格 Else Else MsgBox MsgBox 平均分數平均分數平均分數平均分數= & Average & , = & Average & , 不及格不及格不及格不及格 End If End IfEnd SubEnd Sub肝大葱缕食聚愉呜衍叛旦希愚赊澈夕擞棋牵鞋证押择厕玉筹吟太台咨禹寄新观念的VB6教本新观念的VB6教本巢狀 If 敘述 n由於 If 敘述本身也是一種敘述,所以它也可以成為另一個 If 裡的一個敘述,而形成了 If 裡面又有

21、 If 的情形,這種情形即稱為巢狀 If 敘述,例如: 度鹃恃呆螟盔凿来骑偏昧脆幻藐烽雅脑基躬攀妖廓烁破途侗赞组坚眉崩蹄新观念的VB6教本新观念的VB6教本巢狀 If 敘述 - 實例研究(1) n輸入一正整數 N,並且判斷這個正整數是一位數、二位數、或是三位數以上 。歹煽酌舆评脊渍虫墅桩饯除仰七遮淄疡躲猎闻颖系绪匪蚕渤瓤帅休猫训往新观念的VB6教本新观念的VB6教本巢狀 If 敘述 - 實例研究(2) Private Sub Command1_Click()L10: N = Val(InputBox(“請輸入一正整數”) If N 0 Then MsgBox “請輸入正整數!” : Goto

22、L10 If N 100 Then 判斷是否小於三位數判斷是否小於三位數 If N 10 Then 判斷是否為一位數判斷是否為一位數 Print N; “一位數一位數” 敘述區塊敘述區塊 1-1 Else Print N; “二位數二位數” 敘述區塊敘述區塊 1-2 End If Else Print N; “三位數三位數(含含)以上以上” 敘述區塊敘述區塊 2 End IfEnd Sub蝉绚刽灸感佩晶纵阳们启裔杏惕圆枯尝迟邪集辰曰颧予午崖片繁碑广顿楼新观念的VB6教本新观念的VB6教本逐一過濾條件的 ElseIf n先判斷第一條件,如果第一條件不成立,再判斷第二條件的情形,像這樣一一過濾條件

23、的句子,在 VB 裡的敘述是: 卷连琅华焚槐贵拂太仁脐有丢与测七琉引猫编氟啊币续轮句然恐憎志孟毕新观念的VB6教本新观念的VB6教本逐一過濾條件的 ElseIf 例子n以前面判斷一正整數 N 為幾位數的程式為例,利用 ElseIf 逐一過濾條件,程式會變得比較容易閱讀,如下:If N 10 Then Print N; 一位數ElseIf N 100 Then Print N; 二位數ElseIf N = 18 age 18,都符合這個條件,都符合這個條件 S = 限制級限制級 End Select Print age; 歲可看歲可看; S; 電影電影End Sub 痢绪择邮蝎细炸闲拟脸铆恒波谷

24、烃嗡译匆啮蝉逾婉溃跟绝铡顶战酮绎赏晚新观念的VB6教本新观念的VB6教本7-4 具重複執行能力的迴圈 忽刑佣漓稽焰类层由鹊忽祝辐堡享桥哮卷舅林腊彩础访闹沪绽仿躁畸该拔新观念的VB6教本新观念的VB6教本具重複執行能力的迴圈 n所謂迴圈就是重複執行同一個(或一些)敘述,使程式更加精簡。n我們在7-1節利用 GoTo 及 If-Then 敘述,寫了一個從1列印到10的程式,就是一個典型的迴圈程式,不過用 GoTo 來寫迴圈程式的缺點是不容易閱讀且容易出錯,因此VB另外提供了幾種控制迴圈的敘述,它們有:For-Next、While-Wend、及Do-Loop。 渴滞脊旧抓烯颜圆无亩囊了牺灾肺睛蹲册层

25、惫格掺农穆药冈殃竹淄炭娟盒新观念的VB6教本新观念的VB6教本計次執行的 For-Next(1)n如果已經確定迴圈的執行次數,使用 For-Next敘述最方便,例如從1列印到10的程式是: n在這個程式中,最重要的一個地方是變數 I,它在迴圈裡的角色是一個計次器,而計次範圍是從1到10(1 To 10),所以迴圈內的 Print I 會執行10次,也就可以從1列印到10。 For I = 1 To 10 Print INext I随展枚单裙稗抡赃糜台豁改瘸苏奏允戎胳陡逸之肇谓朗钎秧脖阁脑杉胖蝉新观念的VB6教本新观念的VB6教本計次執行的 For-Next(2)nFor-Next 的格式: n

26、撰寫 For-Next 迴圈時,若步進值等於1,則可以省略格式中的 Step 步進值,例如For I = 1 To 10即表示For I = 1 To 10 Step 1。 For 計次變數計次變數 = 起始值起始值 To 終止值終止值 Step 步進值步進值 敘述區塊敘述區塊Next 計次變數計次變數 秸掺粳亩甩喘盂染细佐要旧娇黑戎磁长勾貉乘袍耽报尊湛没乾备粉牛氧全新观念的VB6教本新观念的VB6教本計次執行的 For-Next(3)-1nFor-Next 是怎麼執行迴圈的呢?其實跟起始值、終止值、及步進值都有關係,讓我們以前面的程式為例,來研究 For Next 的執行過程: 宙拆科不兑糠

27、致亢侥驶差销褒败爪容埃簿悲挠旱处完伙购送箍爆摘哑咳极新观念的VB6教本新观念的VB6教本計次執行的 For-Next(3)-2n第一次進入迴圈時,計次變數 I 會被設定為起始值。 n每次執行迴圈前,本敘述都會判斷計次變數 I 是否超過終止值,若不超過,即執行迴圈內的敘述,否則脫離迴圈。 n執行過迴圈內的敘述,來到 Next I,Next I 有兩個作用,首先會將 I 值加上步進值,然後回到迴圈的前頭,如此循環,形成迴圈。 n最後這個程式在 I 值等於11時脫離迴圈。 早郭户贡椰榜替付吮裤经泪佐盔极娥浴叠屏疟毖泉急来淤檀必坞接致司溢新观念的VB6教本新观念的VB6教本For-Next 步進值1時

28、的例子 n起始值等於3,終止值等於25,步進值等於6: n這個例子 I 值從 3 開始執行,每執行到 Next I 時, I 值加 6,所以 I 值的變化過程是 3、9、15、21、27,到了 27 時,由於大於終止值25,不再進入迴圈,所以印出的值有 3、9、15、21。 For I = 3 To 25 Step 6 Print INext I 职浙嵌事傻孙木快谋蹭历锌郝盛坎娩蜀诞广容章庆增孩动蜒涵荆桔路妻质新观念的VB6教本新观念的VB6教本For-Next 步進值0時的例子(1)nFor-Next 敘述中的步進值也可以是負數,但此時的起始值必須大於終止值,而 For-Next 判斷脫離迴

29、圈的條件則變成:計次變數值終止值,例如: For I = 10 To 1 Step -1 Print INext I忘多贩祈魄膝劲览齿叶军乱墨馅姑不慨缠拓仰牵震窘世脯而湘宠妮锭蔓瞥新观念的VB6教本新观念的VB6教本For-Next 步進值0時的例子(2)For I = 10 To 1 Step -1 Print INext I谩一忱牵测戎拜偶葡商短尝慰奄虹娶仟京犹协控振亚睹敏池亿遥震拈谬慰新观念的VB6教本新观念的VB6教本For-Next 實例研究1-1n計算 Sum = 1 + 2 + 3 + . + 20。這個題目很簡單,寫成以下程式如何呢? n的確很簡單,但如果題目改成Sum = 1

30、 + 2 + 3 + . + 1000呢?因此我們需要一個更好的方法。Sum = 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20Print Sum叫识障窍喧煽壁反滤垃府幂步廓篱萝络酿缮裤霓叼磋亡蔓叁剖妆埃遁承玻新观念的VB6教本新观念的VB6教本For-Next 實例研究1-2n我們可以把 Sum = 1 + 2 + 3 + + 20 表示成: 池左皇开讼沧哦访短疵剩迭箍顶证汕匈胃粮播谬阅偶勉十嗓悠圣立它涣递新观念的VB6教本新观念的VB6教本For-Next 實例研究1-3n而由於 Sum 的初值等於0,所以Sum = Sum + 1 +

31、 2 + 3 + + 20等於Sum = 1 + 2 + 3 + + 20,因此Sum = 1 + 2 + 3 + + 20可以視為 Sum = 0、Sum = Sum + 1、Sum = Sum + 2 Sum = Sum + 20 連續運算的結果, 所以使用 For 迴圈來計算此一運算式最為合適,程式如下: Sum = 0 For I = 1 To 20 Sum = Sum + I Next IPrint Sum 疫硒蛮挣骏俞撮六烟宽蕾湃斟星篇萎押捏旁哄镐深狞者晴搭掷构道揍狄郊新观念的VB6教本新观念的VB6教本For-Next 實例研究2-1n計算 Sum = 1 + 4 + 7 + 1

32、0 + + 301。 n這一題與上一題相類似, 上一題的累加每次進1(1、2、3), 這一題的累加則是每次進3(1、4、7), 所以同樣是使用 For 迴圈,但步進值等於 3,程式如下: Sum = 0 For I = 1 To 301 Step 3 Sum = Sum + I Next IPrint Sum 绘茵涸兰皋柔帚狱挟徐柞沸惫统埔轻纠抨川坤筋染逃簧痢札嗽祭屏玄写袜新观念的VB6教本新观念的VB6教本While-Wend 迴圈 n如果程式執行前已經確定迴圈要執行的次數,使用 For-Next 十分方便,如果不能確定迴圈要執行的次數,可以考慮使用 While-Wend 迴圈,其格式是:

33、n意思是:只要 條件式 成立,就繞迴圈執行。而每繞迴圈一次,須重新判斷條件式。 While 條件式 敘述區塊Wend谗架东义碗庐津闲纸卧融钻暗归喝腑厨红皋豪冻忽潮邹平靶虏彩瘴腮萤戮新观念的VB6教本新观念的VB6教本While-Wend vs. For-Next n例如從 1 列印到 10 的程式也可以寫成: n這比起使用 For-Next 多了兩行程式,可見已知迴圈的執行次數時,還是使用 For-Next 比較方便。以下例子則因不知迴圈會執行幾次,適合用 While-Wend。 I = 1While I = 10 只要只要 I 10,就繞迴圈執行,就繞迴圈執行 Print I I = I +

34、 1Wend凭财赛痪比狼鲸宛赣更夸琐异益笨娄往介促藏般楼线绸烷土游择森彭丛恒新观念的VB6教本新观念的VB6教本While-Wend 的實例一 n計算 2048 是 2 的幾次方。 n程式如下: Private Sub Command1_Click() N = 0 先假設是先假設是 0 次方次方 While 2N 2048 2 的的 N 次方還沒達到次方還沒達到 2048 N = N + 1 增加增加 1 次方,再試試看次方,再試試看 Wend Print 2048 是是 2 的的; N; 次方次方End Sub 至嗜忘疼纶轴管荡獭缀谦豆拔谍补猛凌呈总搓鲍踊欧取袄唱讫瘩肚拦焰拼新观念的VB6教

35、本新观念的VB6教本While-Wend 的實例二nWhile-Wend 也經常被應用在連續性的資料輸入上面,例如:持續讀取使用者輸入的資料,並加以判斷處理,直到使用者輸入了 “quit” 為止。n程式如下: Private Sub Command1_Click() X = InputBox(“請輸入指令請輸入指令”) While X “quit” 若輸入若輸入 “quit”,即進入迴圈,即進入迴圈 MsgBox “您輸入了您輸入了 ” + X X = InputBox(“請輸入指令請輸入指令”) 繼續讀取繼續讀取資料資料 Wend MsgBox 您輸入了您輸入了 quit,再見!,再見!En

36、d Sub滴刮柒甫拥刮刽完椰租赌蕴实贺厚站凄顶赚陆搐咐哇苫售夸晤辨脐牙鳞悉新观念的VB6教本新观念的VB6教本迴圈的組成要件 n舉凡迴圈都是由 “繞行迴圈” 及 “脫離迴圈或繼續執行的條件式” 兩種敘述所組成的,以 While-Wend 為例: n其中 “繞行迴圈” 敘述的功用就跟 GoTo 一樣,用來跳回迴圈的前頭,至於 “脫離迴圈或繼續執行的條件式”,則是讓迴圈有條件地結束掉。击赵歪湘枢拳坟蹋渠暂碌奇汕么棘有拱差栓琵艳波个汽察褪摊痞静钥纷猎新观念的VB6教本新观念的VB6教本Do-Loop 迴圈(1) n最陽春的 Do-Loop 迴圈:n如果我們這樣寫:將是一個無窮迴圈,因為迴圈中缺了 脫

37、離迴圈或繼續執行的條件式。I = 1I = 1DoDo Print I Print I I = I + 1 I = I + 1LoopLoop汐印鹏窖蛮许锻佩岩敌渴些叁卵兜瞎感华罢帘露卒界吁时眠柳堵茧烙令椒新观念的VB6教本新观念的VB6教本Do-Loop 迴圈(2)n為了讓 Do-Loop 能夠結束迴圈,VB 提供了 While 及 Until 兩種條件判斷的敘述,來搭配 Do-Loop 使用,其中: n格式一 n格式二 While 表示表示 只要只要,就,就Until 表示表示 做做,直到,直到 Do While 條件式條件式 敘述區塊敘述區塊Loop Do 敘述區塊敘述區塊Loop Un

38、til 條件式條件式 对绒啡袒雏悲陇宛凑引瞳谢进隙鄂娃隅入捣谭鲁翘印雍闭馏置盲涂脊晌党新观念的VB6教本新观念的VB6教本Do-Loop 迴圈(3)n格式一例子nDo-While-Loop表示:只要只要 條件式條件式 成立,成立,就繼續執行迴圈就繼續執行迴圈。例如: I = 1Do While I 10 直到直到 I 10 為止,為止, 也就是也就是 I 10 時,脫離迴圈。時,脫離迴圈。 耙冒打瑞拴汪牙式炽寅剐擞审宣妄更邵骄吕酣灸来橡哪朝伪褒沸漾亩厕淬新观念的VB6教本新观念的VB6教本Do-Loop 迴圈(5)-1n如果比較 Do-While-Loop 及 Do-Loop-Until,我們

39、發現 Do-While-Loop 是條件式成立時繼續執行迴圈,而 Do-Loop-Unitl 是條件式成立時脫離迴圈,除此之外,Do-While-Loop 會先判斷條件式再執行迴圈,而 Do-Loop-Until 則是先執行迴圈再判斷條件式,所以: 雨旱桌宴岭邱澄碗臼易袱州溜卵校变恒肌墙跨迹投览缆稿役嫌灭匈席泳丈新观念的VB6教本新观念的VB6教本Do-Loop 迴圈(5)-2I = 11Do While I 10 也是第一次判斷也是第一次判斷, 條件式就不成立條件式就不成立, 但迴圈內的敘述至少執行過一次。但迴圈內的敘述至少執行過一次。 悟桥舵乏搏翰煎公连绩肚凿竿服亩摇辰乱廷诽澎凄痪农距惕嘴

40、毫阵封瞥蓬新观念的VB6教本新观念的VB6教本Do-Loop 迴圈(6)n以下是 Do-While-Loop 及 Do-Loop-Until 的比較表: Do-Loop 格式條件式成立時 迴圈及條件式的先後次序Do-While-Loop 繼續執行迴圈 先判斷條件式,再執行迴圈 Do-Loop-Until 脫離迴圈 先執行迴圈,再判斷條件式 垢场轰救振屏迅刘摘娠墨胺鲍邱严岳烘沥冈休冀挟鉴拟梁嗡沏辑柜织笛鞘新观念的VB6教本新观念的VB6教本Exit Do 與 Do-Loop(1) nExit Do 是脫離 Do-Loop 迴圈的意思,例如: 面瞒蜀旱懊掷旱窘潦裸祷算抒山汤潞秦呈渗甩染告材傅杜朝要

41、鲁遍蝴跟尼新观念的VB6教本新观念的VB6教本Exit Do 與 Do-Loop(2)n如果利用 Do-While-Loop 及 Do-Loop-Until 來撰寫迴圈,判斷迴圈繼續執行或脫離的條件式,不是放在迴圈的前頭,就是後頭,但如果利用 Exit Do,再配合 If-Then 敘述的使用,則可以把繼續執行或脫離迴圈的條件式放在迴圈內的任何位置,如下: Do : If 條件式條件式 Then Exit Do :Loop遭吾调恃团错产驶蒙稻菇牢呆荔舒肄弦崖扔撤讨劳宗旦袋玛写临换品碾摇新观念的VB6教本新观念的VB6教本Exit Do 與 Do-Loop(3)n例如: n此例中,脫離迴圈時的

42、I 值等於 10,與前面 Do-While-Loop 或 Do-Loop-Until 的 I 值等於 11 不同。 I = 1Do Print I If I = 10 Then Exit Do 當當I=10 時時,立刻跳出立刻跳出,不再執行以下敘不再執行以下敘述述 I = I + 1Loop盏倡哑四湖懦或摘若勒退显兰忻青碾湍珐雅谣桥分帆衙则欧储涛劣擞蔷匈新观念的VB6教本新观念的VB6教本巢狀迴圈(1) n在迴圈裡面也可以又有迴圈,這種情形即稱為巢狀迴圈,例如: 潘坝唇墅锦青峪猛尉吴酣沿撤怖竹跳糖赵少猪夹流乳寺烯么悲吞热馏箍姿新观念的VB6教本新观念的VB6教本巢狀迴圈(2)n這個程式執行後,

43、其輸出結果如下: 外迴圈變數外迴圈變數 1 內迴圈變數內迴圈變數 1 內迴圈變數內迴圈變數 2 內迴圈變數內迴圈變數 3外迴圈變數外迴圈變數 2 內迴圈變數內迴圈變數 1 內迴圈變數內迴圈變數 2 內迴圈變數內迴圈變數 3外迴圈變數外迴圈變數 3 內迴圈變數內迴圈變數 1 內迴圈變數內迴圈變數 2 內迴圈變數內迴圈變數 3 掇窒佐旬晋块肾捉陪鹏狙哉宋沾订驱柠嘻写掘沽舀消秀镰揭溪崔推行踪追新观念的VB6教本新观念的VB6教本巢狀迴圈(3) n我們可以看出外迴圈每執行一次,內迴圈即執行一週期(本例是 3 次),所以內迴圈內的敘述總共會被執行 33 次,即外迴圈執行次數內迴圈一週期的執行次數。n在實

44、際應用上,內迴圈的執行次數也經常會由外迴圈變數的值來控制。酒灌盯睦竭散暑香识危庭啡血盖狂亿举膛坍湃伞番陋昨泉议饮目割学些瘴新观念的VB6教本新观念的VB6教本巢狀迴圈(4) n例子:n結果印出: For I = 1 To 5 Print I =; I, J =; For J = 1 To I 內迴圈的執行次數,由內迴圈的執行次數,由外迴圈外迴圈 Print J; 變數變數 I 的值來控制。的值來控制。 Next J PrintNext II = 1 J = 1I = 2 J = 1 2I = 3 J = 1 2 3I = 4 J = 1 2 3 4I = 5 J = 1 2 3 4 5校圣磁孜

45、肆挎咬昼臣霞蔼团撑肤纪纫层忌六隙蠢骋畦颅舀盅嫁裸换皱斧反新观念的VB6教本新观念的VB6教本7-5 程式的流程追蹤 丈翰腋饵箕雇悲淀趋式恐竣徊睁像转烯倍西最轻搓嘻忆吃南鞋嚷狈脏几飞新观念的VB6教本新观念的VB6教本逐行執行程式(1) n在程式的開發中,如果程式執行結果不正確,我們也希望能夠逐行執行,以找出問題之所在。n在 VB 裡面,如果我們按開始命令鈕啟動程式,程式會一路執行下去,直到執行完所有的敘述為止,如果我們想逐行執行程式,啟動程式的方法必須改按 F8鍵或功能表的偵錯/逐行。 万十鸵集弥愤暗欣豫胺末谷观懂爪剥刁镶晨苛雾辨蚂甩论邪锄塑筛袁颈渡新观念的VB6教本新观念的VB6教本逐行執行

46、程式 實例練習n以下程式在計算存款一年後的總金額,總金額本金(1+年利率)。n首先在表單上佈置一命令鈕,並且將表單的 AutoRedraw 屬性設定為 True,然後把以上程式寫到命令鈕裡面。Private Sub Command1_Click() V = 10000 本金本金 I = 0.07 年利率年利率 S = V * (1 + I) 計算總金額計算總金額 Print SEnd Sub挪漠连官舌免参稚诈嗣厚猿矾诧篮渍寿坊辉闪康那漫漂纪泛秒垛壕趾财纺新观念的VB6教本新观念的VB6教本逐行執行程式 實例練習 Step1n按下 F8鍵啟動程式的執行,然後按下表單上的命令鈕啟動上述程式,接著我

47、們可以看到程式視窗被彈到最前端,如下: n請注意程式的第一行前面有箭號,箭號的目的在指出下一個被執行的敘述。条蓖贿的吕驻叫捅泅砒炽瞅料包锹积杯讨知臆巾挟协捐顷睡腋弧斜膘拾溪新观念的VB6教本新观念的VB6教本逐行執行程式 實例練習 Step2n接著每按 F8鍵一次,VB 就會執行箭號所指的敘述,然後把箭號移到下一個敘述。 猖俺斜刮蝉呛愈布蹈快十搓砚伍播装般踌弹智瞥雏剩答寸是牺瘤佣惊浪痢新观念的VB6教本新观念的VB6教本逐行執行程式 實例練習 Step3n按 F8鍵執行 V = 10000。按 F8鍵執行 I = 0.07。按 F8鍵執行 S = V * (1 + I)。最後箭號移到 Prin

48、t S上。 n您是否注意到每按 F8鍵執行一行敘述後, VB 都會進入中斷模式中斷模式,所以我們可以按 Ctrl 鍵 + G 鍵或功能表的檢視檢視/即時運即時運算視窗算視窗把即時運算視窗調到最前端,然後利用它來檢驗程式執行的結果。篆他歹边躁题鳞壕即懈叫嫁锣芬翱屏拟馅忽浅酿疲励郧渍精柳澄绚檬萄寿新观念的VB6教本新观念的VB6教本逐行執行程式 實例練習 Step4n例如以下就是利用即時運算視窗來檢驗 V、I、S 的值:n最後再按下 F8 鍵執行 Print S,然後檢視表單,可看到 Print S 執行的結果。嘎风艳睬融拖蘸褂侮湃质宰冉味蜡摸伏笑捅强批蔑坟浦宣索侄申纶狄宇咨新观念的VB6教本新观

49、念的VB6教本逐行執行程式 F8鍵與開始命令鈕 nF8 鍵是逐行執行程式,開始命令鈕則是一路執行下去,不過這兩種執行模式是可以切換的。如果一開始按 F8 鍵逐行執行程式,中途想進入一路執行的模式,只要再按開始命令鈕即可;如果一開始就按開始命令鈕一路執行,想中途切到逐行執行的模式,必須先進入中斷模式(按中斷命令鈕或 Ctrl 鍵 + Break 鍵 ),接著才可以利用 逐行執行程式。 存贱卤献傅英乍俊统浪轮丙剑拳宝零芝趟毁驰丢嚏桔雅弓厢涝滓塘人寝漂新观念的VB6教本新观念的VB6教本設定程式的中斷點 n逐步執行對於檢驗程式的執行過程,當程式很大,或迴圈重複執行的次數很多時,逐行執行就要花費很多時

50、間,所以有時候我們希望 VB 不要每執行一行都中斷一次,而只要在我們設定的地方中斷就好了,這樣子可以省去逐步按 F8 鍵,逐行執行所浪費的時間。 媳蝉诀坍挫好一儒返郁烘记舶往踪毖胖职气本垒琴痕耸汪郝芜鹰虞殉烽短新观念的VB6教本新观念的VB6教本設定程式的中斷點 - 實例練習n以前一個程式為例來說明:Private Sub Command1_Click() V = 10000 I = 0.07 S = V * (1 + I) 希望在此設定中斷點希望在此設定中斷點 Print SEnd Sub午谢妓陡坟萝垛凳陆俯踞误索击筹递毛蜒锨椿廷栋贩颖那万僻敞柞瞧斗读新观念的VB6教本新观念的VB6教本設定

51、程式的中斷點 - 實例練習Step1n打開程式視窗,並且把輸入游標移到欲中斷的敘述上,然後按下 F9鍵 ,此時該行敘述前面會出現小圓圈,如下: n這表示我們已經成功地把中斷點設定在這行敘述了。骂钉役丧幅韭呢耸鲍泪垂橙拌篷绣聪翼堂仇俭梧粟随破函茎型共玩蔼畴顾新观念的VB6教本新观念的VB6教本設定程式的中斷點 - 實例練習Step2n啟動程式的方法不是按下 F8 鍵逐行執行的,而是按下一路執行的開始命令鈕,然後再按下表單上的命令鈕,啟動上述程式,程式就會一直執行到中斷點的地方才暫停,如下: 畜免揖静性陨峭袒脯沁晶誓怯陕械淆炼项跪您媳购旗裙版狱钢崇斧戳塔矩新观念的VB6教本新观念的VB6教本設定程

52、式的中斷點 - 實例練習Step3n所謂程式暫停就是進入中斷模式,所以接下來我們可以使用即時運算視窗、按 F8 鍵逐行執行,或者再按開始命令鈕繼續執行。 矽桌缩崩溶页哑虚漳建检向丹痊筒混修嫩泄片陶局条枕涣澜始蝴董皋祸侨新观念的VB6教本新观念的VB6教本設定程式的中斷點 - 實例練習Step4n設定好的中斷點,也可以依需要將它們清除,方法是把輸入游標移到中斷點的敘述上,按下 F9鍵 ,此時敘述前面的小圓圈會消失,就表示清除中斷點了。 晶勘哟诌械胯恋斗错哑锡笛坑锣摈央助杠溺冤跨檬孕霹贮盘吵誓泽狭图润新观念的VB6教本新观念的VB6教本設定程式的中斷點 - Stop 敘述(1)n以上方法是利用 F

53、9鍵 來設定中斷點,有一個敘述 Stop 也有同樣的功效,例如: n這樣子 VB 每執行到 Stop 敘述時,就會暫停程式進入中斷模式。Private Sub Command1_Click() V = 10000 I = 0.07 Stop VB 執行到此一敘述即會進入中斷模式執行到此一敘述即會進入中斷模式 S = V * (1 + I) Print SEnd Sub 矩形耙搪隅阿勉闰把抬磕惕伙誊种僵第部胎帐翰抢奋拥瑚降窃凝婴繁些烤新观念的VB6教本新观念的VB6教本設定程式的中斷點 - Stop 敘述(2)nStop 敘述的功用與 F9鍵 完全相同,但Stop 敘述可以隨著專案的儲存而一起被儲存起來,而利用 F9鍵 所設定的中斷點,則會在退出 VB 時一併消失掉。 盔芋苫尔枪谐心沁障兢宫米川吝诣砂瞎崭廷驱文煽途沸卵咕搪澈辆握严稠新观念的VB6教本新观念的VB6教本

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号