VB程序設(shè)計(jì)第7章-循環(huán)結(jié)構(gòu)_第1頁(yè)
VB程序設(shè)計(jì)第7章-循環(huán)結(jié)構(gòu)_第2頁(yè)
VB程序設(shè)計(jì)第7章-循環(huán)結(jié)構(gòu)_第3頁(yè)
VB程序設(shè)計(jì)第7章-循環(huán)結(jié)構(gòu)_第4頁(yè)
VB程序設(shè)計(jì)第7章-循環(huán)結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(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、1,第2次上交作業(yè): 設(shè)計(jì)并開發(fā)一個(gè)打字練習(xí)程序,能夠計(jì)時(shí)并統(tǒng)計(jì)練習(xí)者的打字速度和正確率等,其它功能自行擴(kuò)展。 要求:下次上機(jī)進(jìn)行系統(tǒng)提交,2,第7章,循環(huán)結(jié)構(gòu)程序設(shè)計(jì),本章要點(diǎn): While循環(huán)結(jié)構(gòu) Do循環(huán)結(jié)構(gòu) For循環(huán)結(jié)構(gòu) GoTo型循環(huán) 多重循環(huán),3,對(duì)比選擇結(jié)構(gòu),思考: 1)什么是循環(huán)結(jié)構(gòu),代碼特征是什么? 2)程序設(shè)計(jì)中哪些情況下需要用循環(huán)結(jié)構(gòu)? 3)為什么需要循環(huán)結(jié)構(gòu),如果不用有無(wú)其他替代方法? 4)VB中循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)形式/語(yǔ)法結(jié)構(gòu)?,4,問(wèn)題1:計(jì)算 s= 1+1+1+1(100個(gè)1相加) s=0 s=s+1 s=s+1 s=s+1,為解決某問(wèn)題,可能某一段代碼需要有條件的

2、連續(xù)重復(fù)執(zhí)行許多次,這就是循環(huán)程序結(jié)構(gòu)。 需重復(fù)執(zhí)行的一段代碼,我們稱之為循環(huán)體。,Ref WD,5,VB提供了豐富的實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句: 1)While Wend語(yǔ)句 2)Do Loop語(yǔ)句 3)For Next語(yǔ)句 4)Goto語(yǔ)句 這就是VB中循環(huán)結(jié)構(gòu)的形式分類! 下面通過(guò)分析循環(huán)結(jié)構(gòu)的語(yǔ)法格式、功能、要點(diǎn)說(shuō)明、執(zhí)行過(guò)程(例題)來(lái)學(xué)習(xí)每種循環(huán)結(jié)構(gòu),同時(shí)提煉出循環(huán)結(jié)構(gòu)的學(xué)習(xí)要領(lǐng)。,6,7.1 While循環(huán)結(jié)構(gòu),1. While循環(huán)結(jié)構(gòu)語(yǔ)法格式: While 條件表達(dá)式 語(yǔ)句組 Wend Ref WD 2. 功能(準(zhǔn)確描述) 首先判斷條件表達(dá)式,如果條件表達(dá)式的值為False就不執(zhí)行循環(huán)體

3、,循環(huán)結(jié)構(gòu)結(jié)束,應(yīng)用程序繼續(xù)往后執(zhí)行Wend后面的語(yǔ)句;如果條件表達(dá)式的值為True就執(zhí)行循環(huán)體,然后再返回判斷條件。,7,問(wèn)題1:計(jì)算 s= 1+1+1+1(100個(gè)1相加) (用While Wend改寫如下) Dim s, count As Integer s = 0 初始化 count = 1 初始化 While count = 100 循環(huán)開始 s = s + 1 循環(huán)體語(yǔ)句 count = count + 1 循環(huán)體語(yǔ)句 Wend 循環(huán)結(jié)束 Label1.Caption = s,Ref Analysis,8,說(shuō)明: (1)條件表達(dá)式:關(guān)系表達(dá)式或邏輯表達(dá)式,取值為True或False

4、; a) 它是用于判斷循環(huán)是否繼續(xù)執(zhí)行的條件; b) 它應(yīng)該根據(jù)實(shí)際需要賦予一個(gè)合理的初值; c) 它的值應(yīng)該在循環(huán)的執(zhí)行過(guò)程中進(jìn)行變化,因?yàn)樗仁沁M(jìn)入循環(huán)的條件,也是結(jié)束循環(huán)的條件。 d) 防止死循環(huán)!,9,(2)循環(huán)體:循環(huán)結(jié)構(gòu)中需要重復(fù)執(zhí)行的語(yǔ)句組部分; a)循環(huán)體中不能包括初變量初始化語(yǔ)句組; b)提取出需要重復(fù)執(zhí)行的語(yǔ)句組放在循環(huán)體中; c)考慮在循環(huán)體中放置改變循環(huán)條件的語(yǔ)句,以便于在滿足特定條件的情況下退出循環(huán); (3)Wend: 與While語(yǔ)句匹配使用的循環(huán)結(jié)束語(yǔ)句,不能單獨(dú)出現(xiàn),也不能缺少。,10,【例7.2】利用格里高利公式求,分析: 這是一個(gè)用多項(xiàng)式累加和模擬PI值的題

5、目,每一項(xiàng)都具有特定的變化規(guī)律,那么: 1)判斷出要用循環(huán)結(jié)構(gòu)來(lái)做 2)尋找(或創(chuàng)造)循環(huán)條件 3)明確循環(huán)體,及循環(huán)條件在循環(huán)體中作用 4)設(shè)計(jì)算法流程,或直接編程實(shí)現(xiàn),11,Private Sub Form_Load() Dim Pi, Sum, s, i As Double Sum = 0 累加和,模擬PI i = 1 每項(xiàng)的分母值 s = 1 符號(hào)變量 While Abs(s / i) 0.0000001 Sum = Sum + s / i i = i + 2 s = -1 * s Wend Pi = Sum * 4 Label2.Caption = Pi End Sub,12,7.2

6、 Do循環(huán)結(jié)構(gòu),Do循環(huán)結(jié)構(gòu)一般由Do Loop語(yǔ)句構(gòu)成,組成完整循環(huán)結(jié)構(gòu),位于其內(nèi)的語(yǔ)句組構(gòu)成循環(huán)體。 Ref WD 思考:Do循環(huán)的循環(huán)條件由什么構(gòu)成呢? 方案:與While語(yǔ)句或Until語(yǔ)句配合使用構(gòu)成,而且根據(jù)While語(yǔ)句或Until語(yǔ)句在DoLoop中所處的位置不同,既可以構(gòu)成“當(dāng)型循環(huán)”,又可以構(gòu)成“直到型循環(huán)”。 Ref WD,13,特別說(shuō)明: 我們知道,程序中的循環(huán)體不可能永無(wú)止境的執(zhí)行,需要有結(jié)束執(zhí)行的條件(循環(huán)條件);根據(jù)先判斷條件后執(zhí)行循環(huán)體,還是先執(zhí)行循環(huán)體再判斷條件把循環(huán)結(jié)構(gòu)分為兩類(語(yǔ)義上): 1)當(dāng)型循環(huán):先判斷條件、再執(zhí)行循環(huán)體,然后返回再判斷條件,開始新的

7、一趟。 2)直到型循環(huán):先執(zhí)行一遍循環(huán)體,再判斷條件,所以在這種結(jié)構(gòu)中,循環(huán)體至少執(zhí)行一遍。 Ref WD,14,7.2 Do循環(huán)結(jié)構(gòu) 1、當(dāng)型循環(huán)(由Do While Loop組成) 語(yǔ)法格式: Do While 條件表達(dá)式 循環(huán)體 Loop 流程圖:,15,例題1改造成Do While結(jié)構(gòu): Private Sub Form_Load() Dim Sum, Count As Integer Sum = 0 Count = 1 DO While Count =100 Sum = Sum + 1 Count = Count + 1 LOOP Text1.Text = Sum End Sub,當(dāng)

8、型格式,16,2、直到型循環(huán) (由Do Loop Until組成) 語(yǔ)法格式: Do 循環(huán)體 Loop Until 條件表達(dá)式 流程圖:,17,例題1改造成Do Until結(jié)構(gòu): Private Sub Form_Load() Dim Sum, Count As Integer Sum = 0 Count = 1 DO Sum = Sum + 1 Count = Count + 1 LOOP UNTIL Count 100 Text1.Text = Sum End Sub,直到型格式2,18,7.3 for循環(huán)結(jié)構(gòu),能夠確定循環(huán)體執(zhí)行的次數(shù),那么使用For循環(huán)結(jié)構(gòu)比使用While循環(huán)結(jié)構(gòu)或Do

9、循環(huán)結(jié)構(gòu)更加清晰、簡(jiǎn)潔、方便。,For Next語(yǔ)句的語(yǔ)法為: For 循環(huán)變量初值 To 終值 Step 增量 循環(huán)體 Next 循環(huán)變量 ,1)循環(huán)變量:也稱作計(jì)數(shù)器,是一個(gè)變量,專門用于控制循環(huán)體執(zhí)行的次數(shù)。 2)初值:循環(huán)變量的第一次取值。 3)終值:循環(huán)變量與之比較以決定是否結(jié)束循環(huán)。 4)增量:也稱作步長(zhǎng),循環(huán)變量每次變化時(shí)需增加的數(shù)據(jù)值,增量可為正數(shù)也可為負(fù)數(shù)。如果增量為正數(shù),則終值應(yīng)大于或等于初值;如果增量為負(fù)數(shù),則終值應(yīng)小于或等于初值。,19,5)循環(huán)體:由若干條語(yǔ)句組成,并可有Exit For語(yǔ)句。Exit For語(yǔ)句表示無(wú)條件退出For循環(huán)。 6)Next 循環(huán)變量:循環(huán)

10、體每執(zhí)行一遍后,循環(huán)變量的值就變化一次。,20,例題1改造成For Next結(jié)構(gòu) Sum = 0 For i = 1 To 100 Step 1 Sum = Sum + 1 Next i,思考:求100以內(nèi)所有偶數(shù)的和?,【例7.7】在窗體中對(duì)比顯示從16號(hào)字型到9號(hào)字型。,21,Private Sub Form_Load() Dim i As Integer Show 使輸出可見(jiàn) Form1.Font = 新宋體 For i = 16 To 9 Step -1 Form1.FontSize = i Print i; 號(hào)字型 Next i End Sub,分析: 題目要求對(duì)字體大小從16到9依

11、次輸出,可以判斷出需要用循環(huán)結(jié)構(gòu),而且循環(huán)次數(shù)確定(初始值16 到終值9),所以可以采用For Next循環(huán)結(jié)構(gòu),那么思考如何寫呢?,22,VB中保留了GoTo語(yǔ)句和On GoTo語(yǔ)句,他們都可以控制程序的執(zhí)行方向,雖然不提倡使用,但在有些情況下也是有用的,而且能構(gòu)成循環(huán)結(jié)構(gòu)。,7.4 GoTo型循環(huán),7.4.1 GoTo語(yǔ)句 GoTo語(yǔ)句為無(wú)條件轉(zhuǎn)移語(yǔ)句。GoTo語(yǔ)句的語(yǔ)法格式為: GoTo 標(biāo)號(hào) | 行號(hào) 例如: Goto Start,23,說(shuō)明: (1)標(biāo)號(hào):以英文開頭的標(biāo)示符,它可以出現(xiàn)在GoTo語(yǔ)句之前或者之后,但是要以“:”結(jié)束,并且與GoTo語(yǔ)句在同一個(gè)過(guò)程中存在; (2)行號(hào):

12、是一個(gè)整型數(shù)字,位于語(yǔ)句行的最前面。行號(hào)可以出現(xiàn)在GoTo語(yǔ)句之前或者之后,必須與GoTo語(yǔ)句在同一個(gè)過(guò)程中存在; 例如: GoTo 1000 1000 ,24,(1)構(gòu)成循環(huán):把標(biāo)號(hào)或行號(hào)置前,GoTo語(yǔ)句與If語(yǔ)句配合使用可實(shí)現(xiàn)有條件地重復(fù)執(zhí)行某程序段,從而構(gòu)成Goto型循環(huán)。 例如:,Private Sub Form_Load() Dim count , Sum As Integer Sum = 0:i = 1 Start: 標(biāo)號(hào) Sum = Sum + 1 循環(huán)體語(yǔ)句 i = i + 1 循環(huán)體語(yǔ)句 If i =100 Then GoTo Start GoTo語(yǔ)句 Label2.Cap

13、tion = Sum End Sub,25,7.4.2 On GoTo 語(yǔ)句 On GoTo語(yǔ)句可以根據(jù)不同的條件從多個(gè)出口中選擇一個(gè)。其語(yǔ)法格式為: On 數(shù)值表達(dá)式 GoTo 標(biāo)號(hào)表列 | 行號(hào)表列,說(shuō)明: (1)標(biāo)號(hào)列表:是程序中存在多個(gè)標(biāo)號(hào),多個(gè)標(biāo)號(hào)之間用“,”分隔; (2)行號(hào)列表:是程序中存在多個(gè)行號(hào),多個(gè)行號(hào)之間也用“,”分隔;標(biāo)號(hào)和行號(hào)可以同時(shí)使用。,26,例如: On x1 GoTo R1,20,50 y = 10 : Print y : End R1: y = 0 : Print y : End 20 y = 1: Print y : End 50 y = 2 : Prin

14、t y : End,執(zhí)行順序是:先計(jì)算“數(shù)值表達(dá)式”的值后取整,如果此整數(shù)范圍在所提供的標(biāo)號(hào)及行號(hào)的總個(gè)數(shù)之內(nèi),其值為幾就按順序找到對(duì)應(yīng)的第幾個(gè)標(biāo)號(hào)或行號(hào),轉(zhuǎn)到該處執(zhí)行;如果此整數(shù)不在所提供的標(biāo)號(hào)及行號(hào)的總個(gè)數(shù)之內(nèi),則執(zhí)行OnGoto之后的下一條語(yǔ)句。,27,在循環(huán)結(jié)構(gòu)中,如果循環(huán)體中又包含循環(huán)結(jié)構(gòu),就構(gòu)成了多重循環(huán),也稱為循環(huán)嵌套。 由于循環(huán)形式具有多種,它們之間可以相互嵌套,所以多重循環(huán)的形式多種多樣。 注意: (1)每一種循環(huán)語(yǔ)句中的開始部分與結(jié)束部分的配對(duì)使用。(結(jié)構(gòu)完整) (2)多重循環(huán)的循環(huán)體不能相互交叉。(邏輯完整),7.5 多重循環(huán),28,【例7.10】打印九九乘法口訣。,分析

15、: 因?yàn)槌朔谠E中相乘的兩個(gè)因子都是不斷變化的,因此該問(wèn)題需要有兩重循環(huán)才能實(shí)現(xiàn),外層循環(huán)控制一個(gè)因子的變化,內(nèi)層循環(huán)控制另一個(gè)因子的變化;而且內(nèi)層因子的取值范圍與外層因子有關(guān)系!,29,Private Sub Form_Load() Dim i, j As Single Show 使輸出可見(jiàn) FontSize = 8 For i = 1 To 9 For j = 1 To i Print j ; * ; i ; = ; i * j ; Next j Print 控制換行 Next i End Sub,30,總結(jié): 形式:VB提供了四種循環(huán)結(jié)構(gòu)的語(yǔ)句: 1)While Wend 2)Do Loop 3

溫馨提示

  • 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)論