第4章程序控制結(jié)構(gòu)_第1頁(yè)
第4章程序控制結(jié)構(gòu)_第2頁(yè)
第4章程序控制結(jié)構(gòu)_第3頁(yè)
第4章程序控制結(jié)構(gòu)_第4頁(yè)
第4章程序控制結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩93頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、程序控制結(jié)構(gòu)程序控制結(jié)構(gòu)計(jì)算機(jī)系信息教研室計(jì)算機(jī)系信息教研室n面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,事件驅(qū)動(dòng)的面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,事件驅(qū)動(dòng)的編程機(jī)制編程機(jī)制 一個(gè)一個(gè)VB應(yīng)用程序由若干個(gè)對(duì)象構(gòu)成應(yīng)用程序由若干個(gè)對(duì)象構(gòu)成 各個(gè)對(duì)象的功能主要通過(guò)其事件過(guò)程完成各個(gè)對(duì)象的功能主要通過(guò)其事件過(guò)程完成 系統(tǒng)根據(jù)當(dāng)前發(fā)生的事件,驅(qū)動(dòng)執(zhí)行與該事系統(tǒng)根據(jù)當(dāng)前發(fā)生的事件,驅(qū)動(dòng)執(zhí)行與該事件相對(duì)應(yīng)的事件過(guò)程代碼。件相對(duì)應(yīng)的事件過(guò)程代碼。n事件過(guò)程代碼采用結(jié)構(gòu)化程序設(shè)計(jì)事件過(guò)程代碼采用結(jié)構(gòu)化程序設(shè)計(jì)VB程序設(shè)計(jì)特點(diǎn)程序設(shè)計(jì)特點(diǎn)n任何算法功能都可以通過(guò)由程序模塊組任何算法功能都可以通過(guò)由程序模塊組成的三種基本程序結(jié)構(gòu)的組合成的三

2、種基本程序結(jié)構(gòu)的組合: 順序結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)選擇結(jié)構(gòu)和和循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。來(lái)實(shí)現(xiàn)。 4.1.1 算法概述算法概述n算法是解決問(wèn)題的方法步驟。算法是解決問(wèn)題的方法步驟。n編制程序的過(guò)程首先要設(shè)計(jì)算法編制程序的過(guò)程首先要設(shè)計(jì)算法 方法方法 步驟步驟 n例:例:將兩個(gè)變量將兩個(gè)變量x和和y的值進(jìn)行交換,設(shè)的值進(jìn)行交換,設(shè)x = 10,y = 20 分析:分析: 不能直接進(jìn)行交換不能直接進(jìn)行交換 必須借助一個(gè)中間變量暫存必須借助一個(gè)中間變量暫存x的值。的值。 算法算法:(1) 將將x的值暫存在的值暫存在t中;中;(2) 將將y的值存入的值存入x中;中;(3) 將將t的值存入的值存入y中。中

3、。n比較三個(gè)變量比較三個(gè)變量A、B、C中的值,然后輸中的值,然后輸出其中最大的數(shù)。出其中最大的數(shù)。算法為:算法為:(1)設(shè)置一個(gè)變量)設(shè)置一個(gè)變量Max。(2)若)若AB,則,則MaxA;否則;否則MaxB。(3)若)若CMax,則,則MaxC。(4)輸出)輸出Max。 用計(jì)算機(jī)編程解決問(wèn)題的算法應(yīng)具有的特點(diǎn)用計(jì)算機(jī)編程解決問(wèn)題的算法應(yīng)具有的特點(diǎn)n有窮性(操作步驟是有限的)有窮性(操作步驟是有限的)n確定性(每一步具有確定的操作內(nèi)容)確定性(每一步具有確定的操作內(nèi)容)n有效性(每一步都有確定的結(jié)果)有效性(每一步都有確定的結(jié)果)n有數(shù)據(jù)輸入和結(jié)果輸出有數(shù)據(jù)輸入和結(jié)果輸出算法的表示方法算法的表示

4、方法n語(yǔ)言描述法語(yǔ)言描述法 用計(jì)算機(jī)編程就是用計(jì)算機(jī)語(yǔ)言來(lái)表示算法用計(jì)算機(jī)編程就是用計(jì)算機(jī)語(yǔ)言來(lái)表示算法n圖形法圖形法 對(duì)于較復(fù)雜的問(wèn)題還要借助流程圖或?qū)τ谳^復(fù)雜的問(wèn)題還要借助流程圖或N-S圖圖來(lái)表示算法來(lái)表示算法n流程圖流程圖也稱(chēng)為框圖,它是用一些幾何圖也稱(chēng)為框圖,它是用一些幾何圖形、流向線和文字說(shuō)明來(lái)表示各種類(lèi)型形、流向線和文字說(shuō)明來(lái)表示各種類(lèi)型的操作。在流程圖中所用的基本圖形及的操作。在流程圖中所用的基本圖形及其意義都是由國(guó)家頒布的標(biāo)準(zhǔn)(其意義都是由國(guó)家頒布的標(biāo)準(zhǔn)(GB ISO5807-85)規(guī)定的。)規(guī)定的。圖形法圖形法例例1 將兩個(gè)變量將兩個(gè)變量x和和y的值的值進(jìn)行交換,設(shè)進(jìn)行交換,

5、設(shè)x = 10,y = 20n例例2開(kāi)開(kāi)始始 AB Max=A Max=B CMax Max=C 打打印印 Max 結(jié)結(jié)束束 YYNN4.1.3 三種基本結(jié)構(gòu)表示三種基本結(jié)構(gòu)表示 n順序結(jié)構(gòu)順序結(jié)構(gòu) 程序的流程是按照一個(gè)方向進(jìn)行的,一個(gè)入口,一程序的流程是按照一個(gè)方向進(jìn)行的,一個(gè)入口,一個(gè)出口,中間有若干條依次執(zhí)行的語(yǔ)句。個(gè)出口,中間有若干條依次執(zhí)行的語(yǔ)句。n選擇結(jié)構(gòu)選擇結(jié)構(gòu) 程序的流程出現(xiàn)一個(gè)或多個(gè)分支,按一定的程序的流程出現(xiàn)一個(gè)或多個(gè)分支,按一定的條件選擇其中之一執(zhí)行,即選擇結(jié)構(gòu)也叫分條件選擇其中之一執(zhí)行,即選擇結(jié)構(gòu)也叫分支結(jié)構(gòu)。它有一個(gè)入口,一個(gè)出口。中間可支結(jié)構(gòu)。它有一個(gè)入口,一個(gè)出口

6、。中間可以有兩條或多條分支。以有兩條或多條分支。n循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 程序流程是按一定的條件重復(fù)多次執(zhí)行一程序流程是按一定的條件重復(fù)多次執(zhí)行一段程序,被重復(fù)執(zhí)行的程序段叫循環(huán)體。段程序,被重復(fù)執(zhí)行的程序段叫循環(huán)體。n循環(huán)結(jié)構(gòu)的種類(lèi)循環(huán)結(jié)構(gòu)的種類(lèi) 按退出循環(huán)的條件按退出循環(huán)的條件 當(dāng)型(當(dāng)型(While)循環(huán)結(jié)構(gòu))循環(huán)結(jié)構(gòu) 直到型(直到型(Until)循環(huán)結(jié)構(gòu))循環(huán)結(jié)構(gòu) 按循環(huán)體至少執(zhí)行的次數(shù)按循環(huán)體至少執(zhí)行的次數(shù) 0次循環(huán)次循環(huán) 1次循環(huán)次循環(huán)n循環(huán)結(jié)構(gòu)也只有一個(gè)入口和一個(gè)出口。循環(huán)結(jié)構(gòu)也只有一個(gè)入口和一個(gè)出口。且只允許且只允許有限次的重復(fù)有限次的重復(fù),不能無(wú)限循環(huán)。,不能無(wú)限循環(huán)。當(dāng)型當(dāng)型0次

7、循環(huán)次循環(huán)直到型直到型1次循環(huán)次循環(huán)4.2數(shù)據(jù)的輸入與輸出操作數(shù)據(jù)的輸入與輸出操作4.2.1 數(shù)據(jù)輸出數(shù)據(jù)輸出1Print方法object.Print Spc(n) | Tab(n) expression charposobject:窗體:窗體(form)、立即窗口、立即窗口(Debug)、圖片框、圖片框(PictureBox)、打印機(jī)、打印機(jī)(Printer)等對(duì)象。等對(duì)象。如果省略如果省略“對(duì)象對(duì)象名名”,則在當(dāng)前窗體上輸出。,則在當(dāng)前窗體上輸出。 Expression:要打印的數(shù)值表達(dá)式或字符串表達(dá)式。:要打印的數(shù)值表達(dá)式或字符串表達(dá)式。 Charpos:逗號(hào)或分號(hào),指定下個(gè)字符的插入點(diǎn)

8、。:逗號(hào)或分號(hào),指定下個(gè)字符的插入點(diǎn)。 逗號(hào)分隔,則按標(biāo)準(zhǔn)格式顯示數(shù)據(jù)項(xiàng),以逗號(hào)分隔,則按標(biāo)準(zhǔn)格式顯示數(shù)據(jù)項(xiàng),以14個(gè)字符位個(gè)字符位置為單位把輸出行分成若干個(gè)區(qū)段,每區(qū)段輸出一個(gè)置為單位把輸出行分成若干個(gè)區(qū)段,每區(qū)段輸出一個(gè)表達(dá)式的值。表達(dá)式的值。1. 分號(hào)或空格作分隔符,則按緊湊格式輸出。分號(hào)或空格作分隔符,則按緊湊格式輸出。 注意注意:每執(zhí)行一次:每執(zhí)行一次print方法自動(dòng)換行。如果要在同一行繼續(xù)顯示,方法自動(dòng)換行。如果要在同一行繼續(xù)顯示,需在末尾加上逗號(hào)或分號(hào)需在末尾加上逗號(hào)或分號(hào)2. 與與Print方法有關(guān)的函數(shù)方法有關(guān)的函數(shù)(1)Tab函數(shù)函數(shù)與與 Print # 語(yǔ)句或語(yǔ)句或 P

9、rint 方法一起使用,對(duì)輸出進(jìn)行定方法一起使用,對(duì)輸出進(jìn)行定位。位。格式:格式: Tab(n)n參數(shù)參數(shù)n可選??蛇x。n如果當(dāng)前行上允許的輸出寬度如果當(dāng)前行上允許的輸出寬度(格數(shù)格數(shù))大于大于n,則,則Tab將將輸出位置移動(dòng)到第輸出位置移動(dòng)到第n列上列上;如果如果n小于小于1,則,則Tab將輸出位置移動(dòng)到第將輸出位置移動(dòng)到第1列。列。如果如果n大于輸出行的寬度大于輸出行的寬度width,則,則Tab函數(shù)使用以下函數(shù)使用以下公式計(jì)算下一個(gè)輸出位置:公式計(jì)算下一個(gè)輸出位置: NextPosition=n Mod width n每個(gè)每個(gè)Tab函數(shù)對(duì)應(yīng)一個(gè)輸出項(xiàng),各輸出項(xiàng)之間用分號(hào)函數(shù)對(duì)應(yīng)一個(gè)輸出項(xiàng)

10、,各輸出項(xiàng)之間用分號(hào)分隔。分隔。 Tab使用舉例使用舉例Print Hello;Tab(10);Visual Basic第二個(gè)字從第第二個(gè)字從第10列開(kāi)始輸出列開(kāi)始輸出Print Hello;Tab; Visual Basic 如果省略參數(shù),光標(biāo)移至下一個(gè)輸出區(qū)如果省略參數(shù),光標(biāo)移至下一個(gè)輸出區(qū)n輸出結(jié)果為:輸出結(jié)果為: Hello Visual Basic Hello Visual Basic(2)Spc函數(shù)函數(shù)格式:格式: Spc(n)在顯示或打印列表中的下一個(gè)表達(dá)式之前插入在顯示或打印列表中的下一個(gè)表達(dá)式之前插入n個(gè)空白數(shù),個(gè)空白數(shù),n為為032767之間的整數(shù)。之間的整數(shù)。Spc函數(shù)與

11、輸出項(xiàng)之間用分號(hào)隔函數(shù)與輸出項(xiàng)之間用分號(hào)隔開(kāi)。開(kāi)。 n如果如果 n 小于輸出行的寬度,則下一個(gè)打印位置將緊接小于輸出行的寬度,則下一個(gè)打印位置將緊接在數(shù)個(gè)已打印的空白之后。在數(shù)個(gè)已打印的空白之后。如果如果 n 大于輸出行的寬度,則大于輸出行的寬度,則 Spc 利用下列公式計(jì)算利用下列公式計(jì)算下一個(gè)打印位置:下一個(gè)打印位置: 當(dāng)前位置當(dāng)前位置+ (n Mod 行寬行寬)nSpc函數(shù)函數(shù)只表示兩個(gè)輸出項(xiàng)之間的間隔只表示兩個(gè)輸出項(xiàng)之間的間隔。n各輸出項(xiàng)之間用分號(hào)分隔。各輸出項(xiàng)之間用分號(hào)分隔。Format函數(shù)函數(shù)n格式:格式: Format() 用用Format函數(shù)可以使數(shù)值按函數(shù)可以使數(shù)值按“格式字

12、格式字符串符串”指定的格式輸出。指定的格式輸出。 n說(shuō)明:說(shuō)明:“#”“#”表示一個(gè)數(shù)字占位符。表示一個(gè)數(shù)字占位符。# #的個(gè)數(shù)決定了顯的個(gè)數(shù)決定了顯示串的長(zhǎng)度。在格式字符串中示串的長(zhǎng)度。在格式字符串中“#”#”的位置上的位置上有數(shù)字存在,就顯示出來(lái);否則,該位置就什有數(shù)字存在,就顯示出來(lái);否則,該位置就什么都不顯示。么都不顯示?!?”“0”表示一個(gè)數(shù)字占位符,與表示一個(gè)數(shù)字占位符,與# #的功能相同,的功能相同,只是多余位以只是多余位以0 0補(bǔ)齊。補(bǔ)齊。“.”“.”表示小數(shù)點(diǎn)占位符。小數(shù)點(diǎn)與表示小數(shù)點(diǎn)占位符。小數(shù)點(diǎn)與# #或或0 0結(jié)合結(jié)合使用,根據(jù)格式字符串的位置。根據(jù)格式串,使用,根據(jù)格

13、式字符串的位置。根據(jù)格式串,小數(shù)部分多余的數(shù)字按四舍五入顯示,但不會(huì)小數(shù)部分多余的數(shù)字按四舍五入顯示,但不會(huì)改變變量的實(shí)際數(shù)值。改變變量的實(shí)際數(shù)值。“,”“,”表示千分位符號(hào)占位符。在格式字符串表示千分位符號(hào)占位符。在格式字符串中插入逗號(hào),起到中插入逗號(hào),起到“分位分位”作用。逗號(hào)可以放作用。逗號(hào)可以放在小數(shù)點(diǎn)前的任何位置,但不能放在串首部。在小數(shù)點(diǎn)前的任何位置,但不能放在串首部。百分號(hào)。通常放在格式字符串的尾部,百分號(hào)。通常放在格式字符串的尾部,用來(lái)輸出百分?jǐn)?shù)。用來(lái)輸出百分?jǐn)?shù)。$ $美元符號(hào)。通常作為格式字符串的起美元符號(hào)。通常作為格式字符串的起始字符。始字符。+ +正號(hào)、正號(hào)、- -負(fù)號(hào)。

14、放在格式字符串的首部,負(fù)號(hào)。放在格式字符串的首部,為輸出數(shù)據(jù)添加正負(fù)號(hào)。為輸出數(shù)據(jù)添加正負(fù)號(hào)。 E+ E-E+ E-表示用指數(shù)形式顯示數(shù)值。表示用指數(shù)形式顯示數(shù)值。 n【例【例4-3】 用窗體事件過(guò)程試驗(yàn)數(shù)值的格式化用窗體事件過(guò)程試驗(yàn)數(shù)值的格式化輸出。輸出。Private Sub Form_Click() Print Format(12345.6, 000,000.00) Print Format(12345.678, #,#.#) Print Format(12345.6, #) Print Format(12345.6, #,#0.00) Print Format(12345.6, $#,

15、#0.00) Print Format(12345.6, -#,#0.00) Print Format(0.123, 0.00%) Print Format(12345.6, 0.00E+00)End Sub4.2.2輸入框函數(shù)輸入框函數(shù)InputBox()() 變量名變量名=InputBox(=InputBox(, ,,x,y) 作用:在一對(duì)話框中顯示提示,等待用戶輸作用:在一對(duì)話框中顯示提示,等待用戶輸入正文或按下按鈕,并返回包含文本框中內(nèi)容,入正文或按下按鈕,并返回包含文本框中內(nèi)容,函數(shù)值的類(lèi)型為函數(shù)值的類(lèi)型為 String類(lèi)型。類(lèi)型。 例如,要用例如,要用InputBoxInputBo

16、x函數(shù)給變量函數(shù)給變量x x賦值,可以用下面的賦賦值,可以用下面的賦值語(yǔ)句:值語(yǔ)句:X=Val(InputBox(請(qǐng)輸入(請(qǐng)輸入xxx的成績(jī),數(shù)據(jù)輸?shù)某煽?jī),數(shù)據(jù)輸入,入,80) n1:該項(xiàng)是必須有的。它是:該項(xiàng)是必須有的。它是在在InputBox對(duì)話框中作為提示用戶操作對(duì)話框中作為提示用戶操作的信息,如上例中的的信息,如上例中的“請(qǐng)輸入請(qǐng)輸入xxx的成的成績(jī)績(jī)”。該項(xiàng)可以是字符常量、變量和字。該項(xiàng)可以是字符常量、變量和字符串表達(dá)式。它的最大長(zhǎng)度為符串表達(dá)式。它的最大長(zhǎng)度為1024個(gè)字個(gè)字符,若要顯示多行,必須將要顯示的信符,若要顯示多行,必須將要顯示的信息通過(guò)字符連接符息通過(guò)字符連接符“+”或

17、或“&”組成字符組成字符串表達(dá)式,在要換行處加回車(chē)串表達(dá)式,在要換行處加回車(chē)Chr(13)、)、換行換行Chr(10)控制符或使用系統(tǒng)常量)控制符或使用系統(tǒng)常量vbCrLf。 n2 2 :用于對(duì)話框標(biāo)題區(qū)顯示的:用于對(duì)話框標(biāo)題區(qū)顯示的信息,如上例中的信息,如上例中的“數(shù)據(jù)輸入框數(shù)據(jù)輸入框”。該。該項(xiàng)是字符串表達(dá)式,若省略,則將應(yīng)用項(xiàng)是字符串表達(dá)式,若省略,則將應(yīng)用程序名,即工程名作為對(duì)話框的標(biāo)題。程序名,即工程名作為對(duì)話框的標(biāo)題。n3 3 :輸入文本編輯區(qū)默認(rèn)值,:輸入文本編輯區(qū)默認(rèn)值,如上例中的如上例中的8080,如果用戶不輸入值而直,如果用戶不輸入值而直接按回車(chē)鍵或單擊接按回車(chē)鍵或單擊“確

18、定確定”按鈕,則該按鈕,則該值便作為函數(shù)的輸入值。該項(xiàng)為數(shù)值常值便作為函數(shù)的輸入值。該項(xiàng)為數(shù)值常量、字符串常數(shù)量或常量表達(dá)式。若省量、字符串常數(shù)量或常量表達(dá)式。若省略,則相當(dāng)于空字符串。略,則相當(dāng)于空字符串。n4、:確定對(duì)話框在:確定對(duì)話框在屏幕上顯示的位置,為整型表達(dá)式,用屏幕上顯示的位置,為整型表達(dá)式,用來(lái)確定對(duì)話框左上角在屏幕上的位置,來(lái)確定對(duì)話框左上角在屏幕上的位置,屏幕左上角的坐標(biāo)為(屏幕左上角的坐標(biāo)為(0,0),向下為),向下為Y的正方向,向右為的正方向,向右為X的正方向。的正方向。 n注意:注意:(1 1)各項(xiàng)參數(shù)次序必須一一對(duì)應(yīng),除第一)各項(xiàng)參數(shù)次序必須一一對(duì)應(yīng),除第一項(xiàng)參數(shù)項(xiàng)

19、參數(shù)“提示信息提示信息”不能省略外,其余參不能省略外,其余參數(shù)均可忽略,如果處于中間位置的參數(shù)省數(shù)均可忽略,如果處于中間位置的參數(shù)省略,則其對(duì)應(yīng)的符號(hào)不能省略。略,則其對(duì)應(yīng)的符號(hào)不能省略。例如:省略除提示信息的參數(shù),則上例應(yīng)例如:省略除提示信息的參數(shù),則上例應(yīng)改為:改為:X=InputBox(X=InputBox(請(qǐng)輸入請(qǐng)輸入xxxxxx的成績(jī),的成績(jī),80)80)(2 2)由)由InputBoxInputBox函數(shù)返回的數(shù)據(jù)類(lèi)型是字函數(shù)返回的數(shù)據(jù)類(lèi)型是字符類(lèi)型數(shù)據(jù),如果要得到數(shù)值類(lèi)型數(shù)據(jù),符類(lèi)型數(shù)據(jù),如果要得到數(shù)值類(lèi)型數(shù)據(jù),則必須用則必須用Val()Val()函數(shù)進(jìn)行類(lèi)型轉(zhuǎn)換。函數(shù)進(jìn)行類(lèi)型轉(zhuǎn)

20、換。4.2.3 消息框消息框MsgBoxMsgBox函數(shù)在對(duì)話框中顯示信息,等待用戶單函數(shù)在對(duì)話框中顯示信息,等待用戶單擊按鈕,并返回一個(gè)整數(shù)以標(biāo)明用戶單擊了哪個(gè)擊按鈕,并返回一個(gè)整數(shù)以標(biāo)明用戶單擊了哪個(gè)按鈕。其語(yǔ)法格式為:按鈕。其語(yǔ)法格式為:變量變量=MsgBox(, , ) 設(shè)置值及其意義設(shè)置值及其意義分組分組系統(tǒng)常數(shù)系統(tǒng)常數(shù)值值描述描述按鈕數(shù)目按鈕數(shù)目vbOKOnly0只顯示只顯示 OK 按鈕。按鈕。VbOKCancel1顯示顯示 OK 及及 Cancel 按鈕。按鈕。VbAbortRetryIgnore2顯示顯示 Abort、Retry 及及 Ignore 按鈕。按鈕。VbYesNoC

21、ancel3顯示顯示 Yes、No 及及 Cancel 按鈕。按鈕。VbYesNo4顯示顯示 Yes 及及 No 按鈕。按鈕。VbRetryCancel5顯示顯示 Retry 及及 Cancel 按鈕。按鈕。圖標(biāo)類(lèi)型圖標(biāo)類(lèi)型VbCritical16顯示顯示 Critical Message 圖標(biāo)。圖標(biāo)。VbQuestion32顯示顯示 Warning Query 圖標(biāo)。圖標(biāo)。VbExclamation48顯示顯示 Warning Message 圖標(biāo)。圖標(biāo)。VbInformation64顯示顯示 Information Message 圖標(biāo)。圖標(biāo)。默認(rèn)按鈕默認(rèn)按鈕vbDefaultButton

22、10第一個(gè)按鈕是缺省值。第一個(gè)按鈕是缺省值。vbDefaultButton2256第二個(gè)按鈕是缺省值。第二個(gè)按鈕是缺省值。vbDefaultButton3512第三個(gè)按鈕是缺省值。第三個(gè)按鈕是缺省值。模式模式vbApplicationModal0應(yīng)用程序強(qiáng)制返回;應(yīng)用程序一直被掛起,應(yīng)用程序強(qiáng)制返回;應(yīng)用程序一直被掛起,直到用戶對(duì)消息框作出響應(yīng)才繼續(xù)工作。直到用戶對(duì)消息框作出響應(yīng)才繼續(xù)工作。vbSystemModal4096系統(tǒng)強(qiáng)制返回;全部應(yīng)用程序都被掛起,直系統(tǒng)強(qiáng)制返回;全部應(yīng)用程序都被掛起,直到用戶對(duì)消息框作出響應(yīng)才繼續(xù)工作。到用戶對(duì)消息框作出響應(yīng)才繼續(xù)工作。n【例【例4 -4】 Msg

23、=Hope Wang。 & vbCrLf & is a good teacher。Style= VbYesNo + VbQuestion + VbDefaultButton2a = MsgBox(Msg, Style, 詢問(wèn)詢問(wèn))MsgBox函數(shù)的返回值函數(shù)的返回值系統(tǒng)常數(shù)系統(tǒng)常數(shù)返回值返回值描述描述VbOK1確定確定vbCancel2取消取消vbAbort3終止終止vbRetry4重試重試vbIgnore5忽略忽略VbYes6是是VbNo7否否n【例【例4-5】使用條件】使用條件(If)語(yǔ)句,利用語(yǔ)句,利用MsgBox函數(shù)的返回值作為不同操作的函數(shù)的返回值作為不同操作的選擇選擇:If a=v

24、bYes Then 用戶按下用戶按下”是是” MyString=你選擇的是你選擇的是“是是”按鈕按鈕 Else 用戶按下用戶按下”否否” MyString=你選擇的是你選擇的是“否否”按鈕按鈕 Print mystringEnd if4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)4.3.1 If語(yǔ)句語(yǔ)句單行條件語(yǔ)句格式如下單行條件語(yǔ)句格式如下: If Then Else 代碼舉例:代碼舉例:a = inputbox(“請(qǐng)輸入字符:請(qǐng)輸入字符:”)If a=“0” and a=“9” Then print a;”為數(shù)字為數(shù)字!”If語(yǔ)句的語(yǔ)句的Else部分是可選的,當(dāng)該項(xiàng)省略時(shí),簡(jiǎn)化為:部分是可選的,當(dāng)該項(xiàng)省略時(shí),簡(jiǎn)

25、化為: If Then 它的功能是,如果它的功能是,如果“條件條件”為為T(mén)rue,執(zhí)行,執(zhí)行“語(yǔ)句語(yǔ)句1”,否則,否則執(zhí)行下一行語(yǔ)句執(zhí)行下一行語(yǔ)句 。單行條件語(yǔ)句要作為一條語(yǔ)句書(shū)寫(xiě),其中語(yǔ)句塊、語(yǔ)句單行條件語(yǔ)句要作為一條語(yǔ)句書(shū)寫(xiě),其中語(yǔ)句塊、語(yǔ)句塊可以是一條語(yǔ)句也可是由冒號(hào)間隔的多條語(yǔ)句塊可以是一條語(yǔ)句也可是由冒號(hào)間隔的多條語(yǔ)句True邏輯表達(dá)式邏輯表達(dá)式語(yǔ)句語(yǔ)句1語(yǔ)句語(yǔ)句2FalseIf語(yǔ)句執(zhí)行流程語(yǔ)句執(zhí)行流程編程舉例編程舉例n輸入三個(gè)數(shù)輸入三個(gè)數(shù)a,b,c,輸出三者之中最小者。,輸出三者之中最小者。 分析分析 輸入三個(gè)數(shù)值;從中找出最小值;輸出結(jié)果。輸入三個(gè)數(shù)值;從中找出最小值;輸出結(jié)果。

26、Private Sub Command1_Click()Dim a as Integer,b as IntegerDim c as Integer,min as Integera=Val(InputBox(請(qǐng)輸入第請(qǐng)輸入第1個(gè)數(shù)個(gè)數(shù):)b=Val(InputBox(請(qǐng)輸入第請(qǐng)輸入第2個(gè)數(shù)個(gè)數(shù):)c=Val(InputBox(請(qǐng)輸入第請(qǐng)輸入第3個(gè)數(shù)個(gè)數(shù):)min =a 設(shè)設(shè)a為最小值為最小值If b min Then min =b 比較后保留最小值比較后保留最小值If c min Then min =cPrint a; 、; b;與與; c;之中最小值是:之中最小值是:; minEnd Sub

27、n雙分支塊結(jié)構(gòu)的雙分支塊結(jié)構(gòu)的ifThenElseifThenElse語(yǔ)句語(yǔ)句單行結(jié)構(gòu)條件語(yǔ)句中,如果條件分支執(zhí)行的操作單行結(jié)構(gòu)條件語(yǔ)句中,如果條件分支執(zhí)行的操作比較復(fù)雜,不能在一個(gè)邏輯行內(nèi)書(shū)寫(xiě)完畢,可以比較復(fù)雜,不能在一個(gè)邏輯行內(nèi)書(shū)寫(xiě)完畢,可以使用塊結(jié)構(gòu)條件語(yǔ)句。塊結(jié)構(gòu)條件語(yǔ)句一般格式使用塊結(jié)構(gòu)條件語(yǔ)句。塊結(jié)構(gòu)條件語(yǔ)句一般格式如下:如下:If If Then Then 1ElseElse 2End IfEnd Ifn語(yǔ)句的執(zhí)行過(guò)程和單行結(jié)構(gòu)條件語(yǔ)句相同語(yǔ)句的執(zhí)行過(guò)程和單行結(jié)構(gòu)條件語(yǔ)句相同, ,即即當(dāng)條件的值為當(dāng)條件的值為T(mén)rue(True(滿足條件滿足條件) )時(shí)執(zhí)行時(shí)執(zhí)行 ThenThen

28、后后面的面的 ,1,否則執(zhí)行否則執(zhí)行Else Else 后面的后面的 2。 n【例【例4-74-7】 求求x x的絕對(duì)值。的絕對(duì)值。分析:?jiǎn)栴}可以描述為:分析:?jiǎn)栴}可以描述為:l l 輸入一個(gè)數(shù)值輸入一個(gè)數(shù)值x x。l l 判斷判斷x x是正數(shù)還是負(fù)數(shù),取絕對(duì)值。是正數(shù)還是負(fù)數(shù),取絕對(duì)值。l l 輸出結(jié)果。輸出結(jié)果。Private Sub Command1_Click()Dim x as Integerx=Val(InputBox(請(qǐng)輸入請(qǐng)輸入1個(gè)數(shù)個(gè)數(shù):)If x 0 Then Print - xElsePrint xEnd IfEnd SubPrivate Sub Command2_Cli

29、ck() EndEnd Subn多分支塊結(jié)構(gòu)的多分支塊結(jié)構(gòu)的ifThenElseifThenElse語(yǔ)句語(yǔ)句在雙分支塊結(jié)構(gòu)的在雙分支塊結(jié)構(gòu)的if.Then.Elseif.Then.Else語(yǔ)句中,由于語(yǔ)句中,由于中間為語(yǔ)句塊,即多條語(yǔ)句。這就難免在某個(gè)語(yǔ)句中間為語(yǔ)句塊,即多條語(yǔ)句。這就難免在某個(gè)語(yǔ)句塊 中 仍 然 存 在 有 一 個(gè) 雙 分 支 塊 結(jié) 構(gòu) 的塊 中 仍 然 存 在 有 一 個(gè) 雙 分 支 塊 結(jié) 構(gòu) 的if.Then.Elseif.Then.Else語(yǔ)句。其格式如下:語(yǔ)句。其格式如下:If If Then1 Then If If Then2 Then 1 Else Else

30、2 End If End If 其它語(yǔ)句其它語(yǔ)句 ElseElse 3End IfEnd If If If Then1 Then 1ElseElse If If Then2 Then 2 Else Else 3 End If End If 其它語(yǔ)句其它語(yǔ)句 End IfEnd Ifn【例【例4-84-8】從鍵盤(pán)輸入一個(gè)數(shù),判斷其】從鍵盤(pán)輸入一個(gè)數(shù),判斷其為為“大于零大于零”、“等于零等于零”或者或者“小于小于零零”。分析:分析:?jiǎn)栴}可以描述為:?jiǎn)栴}可以描述為:l l 輸入一個(gè)數(shù)值輸入一個(gè)數(shù)值x x。l l 判定其結(jié)果。判定其結(jié)果。Private Sub Command1_Click()Dim

31、x as Integerx=Val(InputBox(請(qǐng)輸入請(qǐng)輸入1個(gè)數(shù)個(gè)數(shù):)If x 0 Then Print “該數(shù)為大于零的數(shù)該數(shù)為大于零的數(shù)”ElsePrint “該數(shù)為等于零的數(shù)該數(shù)為等于零的數(shù)” End IfEnd IfEnd SubPrivate Sub Command2_Click() EndEnd Subn多分支塊結(jié)構(gòu)的多分支塊結(jié)構(gòu)的ifThenElseIfifThenElseIf語(yǔ)句語(yǔ)句在上面的多分支結(jié)構(gòu)中,其實(shí)屬于嵌套在上面的多分支結(jié)構(gòu)中,其實(shí)屬于嵌套的的ifif結(jié)構(gòu)(特點(diǎn)是有一個(gè)結(jié)構(gòu)(特點(diǎn)是有一個(gè)ifif就必然需要就必然需要一個(gè)一個(gè)End IfEnd If作為結(jié)束。)

32、作為結(jié)束。)n多分支塊結(jié)構(gòu)多分支塊結(jié)構(gòu)ifThenElseIfifThenElseIf語(yǔ)句就語(yǔ)句就是對(duì)上面的嵌套的一種改進(jìn),其格式如是對(duì)上面的嵌套的一種改進(jìn),其格式如下:下: IfIfThen1Then 1ElselfElselfThen2Then 2 ElselfElselfThennThen nElseElse n+1End IfEnd Ifn【例【例4-94-9】 輸入一學(xué)生成績(jī),評(píng)定其等輸入一學(xué)生成績(jī),評(píng)定其等級(jí)。方法是:級(jí)。方法是:90100分為分為“優(yōu)秀優(yōu)秀”,8089分為分為“良好良好”。,。,7079分為分為“中等中等”,6069分為分為“及格及格”,60分分以下為以下為“不合

33、格不合格”。 Private Sub Command1_Click() Dim x as Integerx=Val(InputBox(請(qǐng)輸入學(xué)生成績(jī)請(qǐng)輸入學(xué)生成績(jī):)If x = 90 Then Print “優(yōu)秀優(yōu)秀”ElseIf x = 80 Then Print “良好良好”ElseIf x = 70 ThenPrint “中等中等”ElseIf x = 60 Then Print “及格及格”Else Print “不及格不及格”End IfEnd SubPrivate Sub Command2_Click() EndEnd Sub4.3.2Select Case語(yǔ)句語(yǔ)句n有時(shí)程序在某

34、種狀態(tài)下,會(huì)有多種可能選擇。有時(shí)程序在某種狀態(tài)下,會(huì)有多種可能選擇。具有多個(gè)分支時(shí),使用情況語(yǔ)句更為簡(jiǎn)潔。具有多個(gè)分支時(shí),使用情況語(yǔ)句更為簡(jiǎn)潔。情況語(yǔ)句的一般格式為情況語(yǔ)句的一般格式為:Select Case Case Case Case Else End Select n以以Select Case開(kāi)頭,以開(kāi)頭,以End Select結(jié)束。結(jié)束。n功能是根據(jù)功能是根據(jù)“測(cè)試表達(dá)式測(cè)試表達(dá)式”的值,從多個(gè)的值,從多個(gè)語(yǔ)句塊中選擇符合條件的一個(gè)語(yǔ)句塊執(zhí)行。語(yǔ)句塊中選擇符合條件的一個(gè)語(yǔ)句塊執(zhí)行。n情況語(yǔ)句的執(zhí)行過(guò)程情況語(yǔ)句的執(zhí)行過(guò)程 對(duì)對(duì)“測(cè)試表達(dá)式測(cè)試表達(dá)式”求值求值 順序測(cè)試該值與哪一個(gè)順序測(cè)試

35、該值與哪一個(gè)Case子句中的子句中的“表達(dá)表達(dá)式表列式表列”相匹配?相匹配? 如果找到了,則執(zhí)行該如果找到了,則執(zhí)行該Case分支有關(guān)的語(yǔ)句塊,分支有關(guān)的語(yǔ)句塊,然后把控制轉(zhuǎn)移到然后把控制轉(zhuǎn)移到End Select后面的語(yǔ)句后面的語(yǔ)句 如果沒(méi)有找到,則執(zhí)行如果沒(méi)有找到,則執(zhí)行Case Else分支有關(guān)的語(yǔ)分支有關(guān)的語(yǔ)句塊,然后把控制轉(zhuǎn)移到句塊,然后把控制轉(zhuǎn)移到End Select后面的語(yǔ)句。后面的語(yǔ)句。 說(shuō)明:說(shuō)明:1)“測(cè)試表達(dá)式測(cè)試表達(dá)式”可以是數(shù)值表達(dá)式或字可以是數(shù)值表達(dá)式或字符串表達(dá)式,通常為變量。符串表達(dá)式,通常為變量。2) 每個(gè)語(yǔ)句塊由一行或多行每個(gè)語(yǔ)句塊由一行或多行VB語(yǔ)句組成。

36、語(yǔ)句組成。3)“表達(dá)式表列表達(dá)式表列”中的表達(dá)式必須與中的表達(dá)式必須與“測(cè)測(cè)試表達(dá)式試表達(dá)式”的類(lèi)型相同。的類(lèi)型相同。4)“表達(dá)式表列表達(dá)式表列”稱(chēng)為域值,可以是下列稱(chēng)為域值,可以是下列形式之一形式之一:(1) ,各各“表達(dá)式表達(dá)式”值為值為“或或”關(guān)系,即當(dāng)測(cè)試關(guān)系,即當(dāng)測(cè)試表達(dá)式的值與它們中之一相同時(shí),就執(zhí)表達(dá)式的值與它們中之一相同時(shí),就執(zhí)行該行該Case分支的語(yǔ)句。分支的語(yǔ)句。例如:例如:Case 2,4,6,8表示測(cè)試表達(dá)式表示測(cè)試表達(dá)式的值等于的值等于2 or 4 or 6 or 8時(shí)執(zhí)行該分支時(shí)執(zhí)行該分支的語(yǔ)句。的語(yǔ)句。(2) To 關(guān)鍵字關(guān)鍵字To用于指定域值的范圍。若測(cè)試用于指

37、定域值的范圍。若測(cè)試表達(dá)式的值落在表達(dá)式的值落在至至之間之間(包括包括和和的的值值),則執(zhí)行該,則執(zhí)行該Case分支的語(yǔ)句。所以,分支的語(yǔ)句。所以,要求要求的值的值的值的值。例如:例如:Case 1 To 10(3) Is 關(guān)鍵字關(guān)鍵字Is表示當(dāng)測(cè)試值滿足表示當(dāng)測(cè)試值滿足“關(guān)系表達(dá)式關(guān)系表達(dá)式”指定條指定條件時(shí),執(zhí)行該件時(shí),執(zhí)行該Case分支的語(yǔ)句。分支的語(yǔ)句。例如:例如: Case Is10 表示當(dāng)表示當(dāng)“測(cè)試表達(dá)式測(cè)試表達(dá)式”的值的值10時(shí)時(shí)Case Is=5 表示當(dāng)表示當(dāng)“測(cè)試表達(dá)式測(cè)試表達(dá)式”的值的值=5時(shí)時(shí)n在一個(gè)在一個(gè)Select Case語(yǔ)句中三種形式可以混合使用,語(yǔ)句中三種形式

38、可以混合使用,例如:例如: Case Ismin,5,6,13,Is=max Case Is= 90 Label1.Caption = 優(yōu)秀優(yōu)秀 Case Is = 80 Label1.Caption = 良好良好 Case Is = 70 Label1.Caption = 中等中等 Case Is = 60 Label1.Caption = 及格及格 Case Else Label1.Caption = 不及格不及格 End SelectEnd Sub4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 為了解決某一問(wèn)題,或求取某一計(jì)算結(jié)果,程序中為了解決某一問(wèn)題,或求取某一計(jì)算結(jié)果,程序中往往反復(fù)地按某一模式進(jìn)行操作

39、。往往反復(fù)地按某一模式進(jìn)行操作。n 問(wèn)題問(wèn)題1:計(jì)算:計(jì)算1*2*3*4*n。用一個(gè)變量用一個(gè)變量S代表值,可以寫(xiě)成代表值,可以寫(xiě)成:S=1S=S*2S=S*3共有共有n行語(yǔ)句行語(yǔ)句S=S*nn問(wèn)題問(wèn)題2:在一行上輸出:在一行上輸出60個(gè)個(gè)“*”號(hào)。號(hào)。如果用如果用Print方法,可以用方法,可以用60個(gè)個(gè)“*”號(hào)組成一個(gè)字符串:號(hào)組成一個(gè)字符串:print “*” 60個(gè)個(gè)“*”或使用或使用60個(gè)語(yǔ)句:個(gè)語(yǔ)句:Print“*”;Print“*”;共有共有60行行Print”*”n循環(huán)結(jié)構(gòu)是一種重復(fù)執(zhí)行的程序結(jié)構(gòu)。它判循環(huán)結(jié)構(gòu)是一種重復(fù)執(zhí)行的程序結(jié)構(gòu)。它判斷給定的條件,如果條件成立,即為斷給定

40、的條件,如果條件成立,即為“真真”(TrueTrue),則重復(fù)執(zhí)行某一些語(yǔ)句,(稱(chēng)為),則重復(fù)執(zhí)行某一些語(yǔ)句,(稱(chēng)為循環(huán)體);否則,即為循環(huán)體);否則,即為“假假”(FalseFalse),則),則結(jié)束循環(huán)。通常循環(huán)結(jié)構(gòu)有結(jié)束循環(huán)。通常循環(huán)結(jié)構(gòu)有“當(dāng)型循環(huán)當(dāng)型循環(huán)”(先判斷條件,后執(zhí)行循環(huán))和(先判斷條件,后執(zhí)行循環(huán))和“直到型循直到型循環(huán)環(huán)”(先執(zhí)行循環(huán),在判斷條件)兩種。在(先執(zhí)行循環(huán),在判斷條件)兩種。在Visual BasicVisual Basic中,實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句主要中,實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句主要有有3 3種:種:l l WhileWendWhileWend語(yǔ)句語(yǔ)句l l DoLo

41、opDoLoopl l ForNextForNext 4.4.1 WhileWend語(yǔ)句語(yǔ)句 WhileWend語(yǔ)句語(yǔ)句(當(dāng)循環(huán)語(yǔ)句當(dāng)循環(huán)語(yǔ)句)根據(jù)某一條件進(jìn)行判斷,決定是根據(jù)某一條件進(jìn)行判斷,決定是否執(zhí)行循環(huán)。其語(yǔ)句格式如下:否執(zhí)行循環(huán)。其語(yǔ)句格式如下: While Wend 上述格式中,上述格式中,“條件條件”為一布爾表達(dá)式,用以指定循環(huán)條件。為一布爾表達(dá)式,用以指定循環(huán)條件。 執(zhí)行過(guò)程是:執(zhí)行過(guò)程是: 如果如果“條件條件”的值為的值為T(mén)rue(非非0),執(zhí)行由,執(zhí)行由“語(yǔ)句塊語(yǔ)句塊”組成的循環(huán)組成的循環(huán)體,當(dāng)遇到體,當(dāng)遇到Wend語(yǔ)句時(shí),控制返回到語(yǔ)句時(shí),控制返回到While語(yǔ)句,并對(duì)語(yǔ)

42、句,并對(duì)“條件條件”進(jìn)行測(cè)試,如果仍為進(jìn)行測(cè)試,如果仍為T(mén)rue,則重復(fù)上述過(guò)程。如果,則重復(fù)上述過(guò)程。如果“條件條件”為為False,則不再執(zhí)行,則不再執(zhí)行“語(yǔ)句塊語(yǔ)句塊”,而執(zhí)行,而執(zhí)行Wend后面的語(yǔ)句后面的語(yǔ)句 n【例【例4-124-12】使用循環(huán)在窗體上輸出】使用循環(huán)在窗體上輸出1010個(gè)個(gè)“* *”分析:分析:在窗體上輸出在窗體上輸出“* *”,其語(yǔ)句要用到,其語(yǔ)句要用到Print Print “* *”語(yǔ)句。但語(yǔ)句。但Print Print “* *”只能輸出只能輸出1 1個(gè)星號(hào),個(gè)星號(hào),如果要輸出如果要輸出1010個(gè)則讓該語(yǔ)句重復(fù)執(zhí)行個(gè)則讓該語(yǔ)句重復(fù)執(zhí)行1010次即可。所以,程

43、序中要設(shè)置一個(gè)記錄次即可。所以,程序中要設(shè)置一個(gè)記錄Print Print “* *”語(yǔ)句執(zhí)行次數(shù)的變量語(yǔ)句執(zhí)行次數(shù)的變量c c。 【例【例4-134-13】從鍵盤(pán)上輸入一個(gè)數(shù)從鍵盤(pán)上輸入一個(gè)數(shù)x,判定該數(shù),判定該數(shù)是否為質(zhì)數(shù)。是否為質(zhì)數(shù)。 Private Sub Command1_Click() Dim x As Integer, flag As Boolean, n As Integer x = val(InputBox(請(qǐng)輸入一個(gè)數(shù)請(qǐng)輸入一個(gè)數(shù):) flag = True n = 2 While n x And flag If x Mod n = 0 Then flag = False

44、n = n + 1 Wend If flag Then Print x; 是一個(gè)素?cái)?shù)是一個(gè)素?cái)?shù) Else Print x; 不是一個(gè)素?cái)?shù)不是一個(gè)素?cái)?shù) End IfEnd Sub 使用使用WhileWend循環(huán)語(yǔ)句時(shí),應(yīng)注意:循環(huán)語(yǔ)句時(shí),應(yīng)注意: (1)先對(duì)先對(duì)“條件條件”進(jìn)行測(cè)試,然后才決定是否執(zhí)行進(jìn)行測(cè)試,然后才決定是否執(zhí)行循環(huán)體。因此,進(jìn)入循環(huán)體之前應(yīng)循環(huán)體。因此,進(jìn)入循環(huán)體之前應(yīng)正確設(shè)置循環(huán)條正確設(shè)置循環(huán)條件件。 (2)循環(huán)體內(nèi)應(yīng)該循環(huán)體內(nèi)應(yīng)該有修改循環(huán)條件的語(yǔ)句有修改循環(huán)條件的語(yǔ)句,使得循,使得循環(huán)體能正常執(zhí)行和正常終止。否則會(huì)出現(xiàn)死循環(huán),環(huán)體能正常執(zhí)行和正常終止。否則會(huì)出現(xiàn)死循環(huán),這

45、是程序設(shè)計(jì)中容易出現(xiàn)的錯(cuò)誤,應(yīng)當(dāng)盡力避免。這是程序設(shè)計(jì)中容易出現(xiàn)的錯(cuò)誤,應(yīng)當(dāng)盡力避免。 WhileWend語(yǔ)句是語(yǔ)句是Basic語(yǔ)言中形式最簡(jiǎn)單循語(yǔ)言中形式最簡(jiǎn)單循環(huán)語(yǔ)句,我們用它引入了循環(huán)語(yǔ)句的概念和應(yīng)用。環(huán)語(yǔ)句,我們用它引入了循環(huán)語(yǔ)句的概念和應(yīng)用。更典型和更靈活的形式是更典型和更靈活的形式是Do循環(huán)語(yǔ)句,它完全可循環(huán)語(yǔ)句,它完全可以代替以代替WhileWend語(yǔ)句。語(yǔ)句。 4.4.2 DoLoop語(yǔ)句語(yǔ)句nDoLoop循環(huán)語(yǔ)句也是根據(jù)條件決定循環(huán)語(yǔ)句也是根據(jù)條件決定循環(huán)的語(yǔ)句。循環(huán)的語(yǔ)句。nDoLoop語(yǔ)句具有很靈活的構(gòu)造形式:語(yǔ)句具有很靈活的構(gòu)造形式:既能夠指定循環(huán)條件,也能夠指定循環(huán)既

46、能夠指定循環(huán)條件,也能夠指定循環(huán)結(jié)束條件;既可以構(gòu)成先判斷條件形式,結(jié)束條件;既可以構(gòu)成先判斷條件形式,也可以構(gòu)成后判斷條件形式。也可以構(gòu)成后判斷條件形式。 先判斷條件形式的先判斷條件形式的DoLoop語(yǔ)句語(yǔ)句語(yǔ)句格式如下:語(yǔ)句格式如下: Do While | Until Loopn保留字保留字While用于指定循環(huán)條件用于指定循環(huán)條件n保留字保留字Until用于指定循環(huán)結(jié)束條件用于指定循環(huán)結(jié)束條件n先判斷條件形式的先判斷條件形式的DoLoop語(yǔ)句功能是,當(dāng)指定的循環(huán)語(yǔ)句功能是,當(dāng)指定的循環(huán)條件為條件為T(mén)rue或直到指定的循環(huán)結(jié)束條件變?yōu)榛蛑钡街付ǖ难h(huán)結(jié)束條件變?yōu)門(mén)rue之前重之前重復(fù)執(zhí)行語(yǔ)

47、句塊組成的循環(huán)體。進(jìn)入循環(huán)體時(shí),如果循環(huán)條復(fù)執(zhí)行語(yǔ)句塊組成的循環(huán)體。進(jìn)入循環(huán)體時(shí),如果循環(huán)條件不成立或者循環(huán)結(jié)束條件成立,就不會(huì)執(zhí)行循環(huán)體的語(yǔ)件不成立或者循環(huán)結(jié)束條件成立,就不會(huì)執(zhí)行循環(huán)體的語(yǔ)句塊。這點(diǎn)和句塊。這點(diǎn)和WhileWend語(yǔ)句一樣。語(yǔ)句一樣。Do WhileFalseTrue條件的值條件的值循環(huán)體循環(huán)體 Do WhileLoop循環(huán)結(jié)構(gòu)流程圖循環(huán)結(jié)構(gòu)流程圖Do UntilTrueFalse條 件 的條 件 的值值循環(huán)體循環(huán)體Do Until Loop循環(huán)結(jié)構(gòu)流程圖循環(huán)結(jié)構(gòu)流程圖DoLoop語(yǔ)句的先判斷條件格式的控制流程語(yǔ)句的先判斷條件格式的控制流程 x初值為初值為0,則下列循環(huán)語(yǔ)句

48、執(zhí)行后,則下列循環(huán)語(yǔ)句執(zhí)行后,x的值的值等于(等于( ),執(zhí)行循環(huán)體的次數(shù)為(),執(zhí)行循環(huán)體的次數(shù)為( )。)。 i=1 do while x20 x=x+i i=i+2 loop【例【例4-144-14】 用用Do WhileLoopDo WhileLoop語(yǔ)句計(jì)算語(yǔ)句計(jì)算2 2n n。Private Sub Command1_Click() n = Val(InputBox(請(qǐng)輸入請(qǐng)輸入n的值的值) s = 1 c = 1 Do While c 100 s = s + c c = c + 1 Loop Print s = ; sEnd Sub后判斷條件形式的后判斷條件形式的DoLoop語(yǔ)句

49、語(yǔ)句語(yǔ)句格式如下:語(yǔ)句格式如下: Do Loop While|Until 后判斷條件形式的后判斷條件形式的DoLoop語(yǔ)句與先判斷語(yǔ)句與先判斷條件形式的區(qū)別是首先執(zhí)行循環(huán)體,然后測(cè)試條件形式的區(qū)別是首先執(zhí)行循環(huán)體,然后測(cè)試循環(huán)條件或循環(huán)終止條件,決定是否繼續(xù)循環(huán)。循環(huán)條件或循環(huán)終止條件,決定是否繼續(xù)循環(huán)。所以,這種結(jié)構(gòu)的語(yǔ)句至少執(zhí)行一次循環(huán)體。所以,這種結(jié)構(gòu)的語(yǔ)句至少執(zhí)行一次循環(huán)體。DoWhileFalseTrue條 件 的條 件 的值值循環(huán)體循環(huán)體Do Loop While循環(huán)結(jié)構(gòu)流程圖循環(huán)結(jié)構(gòu)流程圖DoUntilFalseTrue條 件 的條 件 的值值循環(huán)體循環(huán)體Do Loop Unti

50、l循環(huán)結(jié)構(gòu)流程圖循環(huán)結(jié)構(gòu)流程圖【例【例4-164-16】用迭代法求用迭代法求x= 求立方根的迭代公式求立方根的迭代公式為,為, 當(dāng)當(dāng)|xn+1-xn| eps Print The cuberoot of ; A; is; QEnd Sub 3a)2(3121nnnxaxx3a4.4.4 ForNext語(yǔ)句語(yǔ)句 ForNext語(yǔ)句,通常語(yǔ)句,通常用于循環(huán)次數(shù)已知用于循環(huán)次數(shù)已知的程序結(jié)構(gòu)中。其一的程序結(jié)構(gòu)中。其一般格式如下:般格式如下: For = To Step Next 說(shuō)明:說(shuō)明: (1) “控制變量控制變量”又稱(chēng)為又稱(chēng)為“循環(huán)控制變量循環(huán)控制變量”。它是一個(gè)。它是一個(gè)數(shù)值變數(shù)值變量量,但

51、不能是下標(biāo)變量或記錄元素。,但不能是下標(biāo)變量或記錄元素。 (2) “初值初值”、“終值終值”和和“步長(zhǎng)步長(zhǎng)”均為均為數(shù)值表達(dá)式數(shù)值表達(dá)式,它們的,它們的值可以是整數(shù)或?qū)崝?shù)。當(dāng)控制變量為整型而它們?yōu)閷?shí)數(shù)時(shí),值可以是整數(shù)或?qū)崝?shù)。當(dāng)控制變量為整型而它們?yōu)閷?shí)數(shù)時(shí),VB將對(duì)其舍入取整將對(duì)其舍入取整。當(dāng)步長(zhǎng)。當(dāng)步長(zhǎng)O時(shí),作遞增循環(huán),即應(yīng)有終時(shí),作遞增循環(huán),即應(yīng)有終值值初值;步長(zhǎng)初值;步長(zhǎng)終終值值循環(huán)體循環(huán)體控制變量控制變量控制變量控制變量+步長(zhǎng)步長(zhǎng) 步長(zhǎng)大于步長(zhǎng)大于0的的For循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)TrueFalse控制變量賦初值控制變量賦初值控制變量控制變量終值終值循環(huán)體循環(huán)體控制變量控制變量控制變量控制變量

52、+步長(zhǎng)步長(zhǎng) 步長(zhǎng)小于步長(zhǎng)小于0的的For循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)1 下列循環(huán)語(yǔ)句執(zhí)行后,循環(huán)體被執(zhí)行的次數(shù)為下列循環(huán)語(yǔ)句執(zhí)行后,循環(huán)體被執(zhí)行的次數(shù)為( )。 For I=1.3 To 5.6 Step 0.5 Print I; Next I A) 8 B) 9 C) 7 D) 10B2 x初值為初值為0,則下列循環(huán)語(yǔ)句執(zhí)行后,則下列循環(huán)語(yǔ)句執(zhí)行后,x的值等于的值等于( )。 For i=1 To 10 Step 2 x=x+i Next i A) 25 B) 36 C) 24 D) 27A3 下列循環(huán)語(yǔ)句執(zhí)行后,循環(huán)體執(zhí)行的次數(shù)為下列循環(huán)語(yǔ)句執(zhí)行后,循環(huán)體執(zhí)行的次數(shù)為( )。 For i=1 To 1

53、0 Step -2 x=x+i Next I A) 5 次次 B) 4 次次 C) 0 次次 D) 6 次次C【例4-17】用用For語(yǔ)句寫(xiě)程序,在一行上語(yǔ)句寫(xiě)程序,在一行上輸出輸出60個(gè)個(gè)“*”號(hào)。號(hào)。For i =1 To 60 Print *;Next i 【例4-18】求求N!(N為自然數(shù)為自然數(shù))Private Sub Command1_Click() Dim n As Integer, x As Integer, k As Long n = InputBox(Enter n:) k = 1 For x = 1 To n k = k * x Next x Print n; !=; k

54、End Sub 4.4.4 嵌套循環(huán)與退出嵌套循環(huán)與退出嵌套循環(huán)嵌套循環(huán) 循環(huán)體的語(yǔ)句塊中可以包含任何循環(huán)體的語(yǔ)句塊中可以包含任何VB語(yǔ)句,當(dāng)然也包括循環(huán)語(yǔ)句。也就是說(shuō),語(yǔ)句,當(dāng)然也包括循環(huán)語(yǔ)句。也就是說(shuō),在一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)體內(nèi)含有另一個(gè)在一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)體內(nèi)含有另一個(gè)循環(huán)結(jié)構(gòu),這就形成了嵌套循環(huán),又叫循環(huán)結(jié)構(gòu),這就形成了嵌套循環(huán),又叫做多重循環(huán)。做多重循環(huán)。 例雙重循環(huán)。雙重循環(huán)。Private Sub Command1_Click() Dim i%, j% For i = 1 To 3 For j = 5 To 6 Print i, j Next j Next iEnd Sub 例例

55、打印九九乘法表。打印九九乘法表。Private Sub Command1_Click() Dim I As Integer, j As Integer Print 九九乘法表九九乘法表 Print - For i = 1 To 9 For j = 1 To i Print j; x; i; =; j * i; Next j Print Next iEnd Sub 例例 打印三角形打印三角形對(duì)于此類(lèi)圖形,需要注意以下兩點(diǎn):對(duì)于此類(lèi)圖形,需要注意以下兩點(diǎn):1)第一行第一個(gè)字符的定位(即確定它的)第一行第一個(gè)字符的定位(即確定它的輸出位置);輸出位置);2)每行之間所輸出內(nèi)容的列數(shù)與循環(huán)控制)每行之間所輸出內(nèi)容的列數(shù)與循環(huán)控制變量的對(duì)應(yīng)關(guān)系。變量的對(duì)應(yīng)關(guān)系。Private Sub Command1_Click() FontSize = 20 Dim i As Integer, j As Integer For i = 1 To

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論