第三章 程序流程控制_第1頁
第三章 程序流程控制_第2頁
第三章 程序流程控制_第3頁
第三章 程序流程控制_第4頁
第三章 程序流程控制_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三章第三章 程序流程控制程序流程控制第三章第三章 程序流程控制程序流程控制 本章內(nèi)容及要求:本章內(nèi)容及要求: 1.熟練掌握行熟練掌握行if語句、塊語句、塊if結(jié)構(gòu)、結(jié)構(gòu)、Select Case情情況選擇結(jié)構(gòu)的使用,掌握選擇的嵌套結(jié)構(gòu);況選擇結(jié)構(gòu)的使用,掌握選擇的嵌套結(jié)構(gòu); 2.熟練掌握實現(xiàn)循環(huán)結(jié)構(gòu)的熟練掌握實現(xiàn)循環(huán)結(jié)構(gòu)的For/Next循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)及及Exit For語句、語句、Do/Loop循環(huán)結(jié)構(gòu)的使用,掌循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán)。握多重循環(huán)。 本章重點:本章重點: 選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實現(xiàn)及其應(yīng)用選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實現(xiàn)及其應(yīng)用 本章難點:本章難點: 選擇的嵌套及多重循環(huán)結(jié)構(gòu)選

2、擇的嵌套及多重循環(huán)結(jié)構(gòu)案例案例3.1 3.1 條件語句條件語句IfThenElseIfThenElse3.1.1 3.1.1 案例說明案例說明 輸入輸入x,x,計算計算y y的值。其中:的值。其中: (1 1)當(dāng))當(dāng) x6 x6 時,時,y=x+3y=x+3 (2) (2) 當(dāng)當(dāng) x x 6 6時,時,y=4xy=4x 案例案例3.1 3.1 條件語句條件語句IfThenElseIfThenElse3.1.2 3.1.2 相關(guān)知識相關(guān)知識 1. 1. 1. IfThen1. IfThen結(jié)構(gòu)結(jié)構(gòu)這種結(jié)構(gòu)常稱為簡單分支結(jié)構(gòu),如圖所示。它一般有兩種形式:這種結(jié)構(gòu)常稱為簡單分支結(jié)構(gòu),如圖所示。它一般

3、有兩種形式:單行和多行語句。單行和多行語句。 單行語句格式:單行語句格式:If If 條件表達(dá)式條件表達(dá)式 Then Then 語句語句 多行語句格式:多行語句格式:If If 條件表達(dá)式條件表達(dá)式 ThenThen 語句塊語句塊End IfEnd If條件表達(dá)式語句塊truefalse例如:例如:對語句對語句 If ab Then max=a也可改成多行結(jié)構(gòu)形式:也可改成多行結(jié)構(gòu)形式: If ab Then max=a End If案例案例3.1 3.1 條件語句條件語句IfThenElseIfThenElse2. IfThenElse2. IfThenElse結(jié)構(gòu)結(jié)構(gòu)語句格式:語句格式:

4、If If 條件表達(dá)式條件表達(dá)式 ThenThen 語句塊語句塊1 1 Else Else 語句塊語句塊2 2 End If End If例如,如果成績大于例如,如果成績大于6060分,則在屏幕分,則在屏幕上顯示上顯示“合格合格”,否則在屏幕上,否則在屏幕上顯示顯示“不合格不合格”。 If score60 thenIf score60 then MsgBoxMsgBox 合格合格 ElseElse MsgBoxMsgBox 不合格不合格 End IfEnd If 案例案例3.1 3.1 條件語句條件語句IfThenElseIfThenElsetrue條件表達(dá)式語句塊 1false語句塊 23.

5、 多重多重If語句語句格式:語句語句格式:語句格式:語句格式: If 條件表達(dá)式條件表達(dá)式1 Then 語句塊語句塊1 ElseIf 條件表達(dá)式條件表達(dá)式2 Then 語句塊語句塊2 ElseIf 條件表達(dá)式條件表達(dá)式3 Then 語句塊語句塊3 ElseIf 條件表達(dá)式條件表達(dá)式n Then 語句塊語句塊n Else 語句塊語句塊 End If 案例案例3.1 3.1 條件語句條件語句IfThenElseIfThenElse語句塊條件 n語句塊條件 1語句塊條件 3語句塊條件 2案例案例3.1 3.1 條件語句條件語句IfThenElseIfThenElse3.1.3 3.1.3 設(shè)計步驟設(shè)

6、計步驟 (1 1)建立程序初始界面。建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:案例演示:案例3.13.1的補(bǔ)充例題的補(bǔ)充例題 案例案例3.1 3.1 條件語句條件語句IfThenElseIfThenElse3.1.3 3.1.3 設(shè)計步驟設(shè)計步驟 (3)(3)編寫事件過程。編寫事件過程。 Private Sub Command1_Click( )Private Sub Command1_Click( )Dim x As Single, y As SingleDim x As Single, y As Singlex = Val(Text1.Text)x = Val(Text1.

7、Text)If x 6 ThenIf x 6 Then y = x + 3 y = x + 3ElseElse y = 4 y = 4 * * x xEnd IfEnd IfText2.Text = Text2.Text = Str(yStr(y) )End SubEnd Sub 案例案例3.1 3.1 條件語句條件語句IfThenElseIfThenElse3.1.4 3.1.4 思考與練習(xí)思考與練習(xí) 1. 1. 編程實現(xiàn):輸入一個整數(shù),判斷它是奇數(shù)還是偶數(shù),并編程實現(xiàn):輸入一個整數(shù),判斷它是奇數(shù)還是偶數(shù),并輸出相應(yīng)的提示信息。用輸出相應(yīng)的提示信息。用 IfThenElseIfThenEls

8、e語句實現(xiàn)。語句實現(xiàn)。(設(shè)計界面,編寫完整的程序,上機(jī)實現(xiàn))(設(shè)計界面,編寫完整的程序,上機(jī)實現(xiàn))Dim n As Integer, Dim n As Integer, strstr As String As String 從界面上的某個控件獲得變量從界面上的某個控件獲得變量n n的值的值If n Mod 2 = 0 ThenIf n Mod 2 = 0 Then strstr = = 偶數(shù)偶數(shù) ElseElse strstr = = 奇數(shù)奇數(shù) End IfEnd If 把把strstr的內(nèi)容顯示在界面上的某個控件上的內(nèi)容顯示在界面上的某個控件上案例案例3.1 3.1 條件語句條件語句IfTh

9、enElseIfThenElse3.1.4 3.1.4 思考與練習(xí)思考與練習(xí) 2. 2. 以下程序運行時,輸出結(jié)果是什么?以下程序運行時,輸出結(jié)果是什么?Private Sub Command1_Click( )Private Sub Command1_Click( )y = 1y = 1If y 0 Then x = 5If y 0 Then x = 5If y 0 ThenIf y 0 Then x = 4 x = 4ElseElse x = 3 x = 3End IfEnd IfPrint x=; xPrint x=; xEnd SubEnd Subx=3x=3案例案例3.2 3.2 條

10、件語句條件語句IfThenIfThenElseIfElseIf語句語句3.2.1 3.2.1 案例說明案例說明 對所輸入的整數(shù)進(jìn)行判斷,若輸入數(shù)為正數(shù),則顯示對所輸入的整數(shù)進(jìn)行判斷,若輸入數(shù)為正數(shù),則顯示“大于大于零零”,若輸入數(shù)為負(fù)數(shù),則顯示,若輸入數(shù)為負(fù)數(shù),則顯示“小于零小于零”,否則顯示,否則顯示“等于等于零零”。用用 IfThenIfThenElseIfElseIf語句實現(xiàn)。語句實現(xiàn)。3.2.2 3.2.2 設(shè)計步驟設(shè)計步驟 (1 1)建立程序初始界面。建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:案例演示:案例3.23.2 案例案例3.2 3.2 條件語句條件語句IfTh

11、enIfThenElseIfElseIf語句語句3.2.2 3.2.2 設(shè)計步驟設(shè)計步驟 (3)(3)編寫事件過程。編寫事件過程。 Private Sub Command1_Click( )Private Sub Command1_Click( )If Val(Text1.Text) 0 ThenIf Val(Text1.Text) 0 Then Val(Text1.Text) 0 Then Text2.Text = Text2.Text = 大于零大于零 Else Else Text2.Text = Text2.Text = 等于零等于零 End IfEnd IfEnd SubEnd Sub

12、案例案例3.2 3.2 條件語句條件語句IfThenIfThenElseIfElseIf語句語句3.2.3 3.2.3 思考與練習(xí)思考與練習(xí) 1.1.為鐵路編寫計算運費的程序。假設(shè)鐵路托運行李,規(guī)定每張為鐵路編寫計算運費的程序。假設(shè)鐵路托運行李,規(guī)定每張客票托運費的計算方法是:客票托運費的計算方法是: 行李重量不超過行李重量不超過 50 kg50 kg時,每千克時,每千克0.250.25元;超過元;超過 50 kg50 kg而不超而不超過過 100 kg100 kg時,其超過部分每千克時,其超過部分每千克0.350.35元;超過元;超過 100 kg100 kg時,其超過時,其超過部分每千克部

13、分每千克0.450.45元。元。 用用 IfThenIfThenElseIfElseIf語句實現(xiàn)。語句實現(xiàn)。 (設(shè)計界面,編寫完整的程序,上機(jī)實現(xiàn))(設(shè)計界面,編寫完整的程序,上機(jī)實現(xiàn))分析:托運費的分段函數(shù)是什么?分析:托運費的分段函數(shù)是什么?答:設(shè)行李重量為答:設(shè)行李重量為w公斤,應(yīng)付托運費為公斤,應(yīng)付托運費為x元,則托運費的分段函數(shù)元,則托運費的分段函數(shù)是:是:(1)w=50時,時, x=0.25*w(2)50w100時,時,x=0.25*50+0.35*50+0.45*(w-100)案例案例3.2 3.2 條件語句條件語句IfThenIfThenElseIfElseIf語句語句Priv

14、ate Sub Command1_Click( )Private Sub Command1_Click( )Dim w As Single, x As SingleDim w As Single, x As Singlew = Val(Text1.Text)w = Val(Text1.Text)IfIf w = 50 Then w 50 And w 50 And w 100 Then w100 Then x = 0.25 x = 0.25 * * 50 + 0.35 50 + 0.35 * * 50 + 0.45 50 + 0.45 * * (w - 100) (w - 100)如果把最后一句

15、如果把最后一句Text2 .Text = Text2 .Text = Str(xStr(x) )寫在此處,效果是什么?寫在此處,效果是什么?End End IfIf案例案例3.2 3.2 條件語句條件語句IfThenIfThenElseIfElseIf語句語句不能寫成:不能寫成: 50w100w100時時, ,才輸出托運費。其他情況才輸出托運費。其他情況, ,不輸出托運費。不輸出托運費。Text2 .Text = Text2 .Text = Str(xStr(x) )End SubEnd Sub注意:注意:運行程序時,運行程序時,w50,50w100 w50,50w100 幾種情況都要運行,看

16、結(jié)果幾種情況都要運行,看結(jié)果是否正確。是否正確。案例案例3.2 3.2 條件語句條件語句IfThenIfThenElseIfElseIf語句語句不能寫成:不能寫成:x=Text2.Text3.2.4 3.2.4 思考與練習(xí)思考與練習(xí) 2.2.根據(jù)輸入三角形三邊判斷能否組成三角形,若可以則判斷輸根據(jù)輸入三角形三邊判斷能否組成三角形,若可以則判斷輸出三角形的類型。用出三角形的類型。用 IfThenIfThenElseIfElseIf語句實現(xiàn)。語句實現(xiàn)。 (設(shè)計界面,編寫完整的程序,上機(jī)實現(xiàn))(設(shè)計界面,編寫完整的程序,上機(jī)實現(xiàn)) 說明:說明: 三角形的類型有:等邊三角形,等腰三角形,直角三角形,三

17、角形的類型有:等邊三角形,等腰三角形,直角三角形,普通三角形。普通三角形。案例案例3.2 3.2 條件語句條件語句IfThenIfThenElseIfElseIf語句語句請請思考:思考: (1 1)怎樣判斷三角形是等邊三角形?)怎樣判斷三角形是等邊三角形? (2 2)怎樣判斷三角形是等腰三角形?)怎樣判斷三角形是等腰三角形? (3 3)怎樣判斷三角形是直角三角形?)怎樣判斷三角形是直角三角形?案例案例3.2 3.2 條件語句條件語句IfThenIfThenElseIfElseIf語句語句Private Sub Command1_Click( )Private Sub Command1_Clic

18、k( )Dim a As Integer, b As Integer, c As Integer, Dim a As Integer, b As Integer, c As Integer, strstr As String As String 從界面上的某些控件獲得變量從界面上的某些控件獲得變量a,b,ca,b,c的值的值If (a + b c And b + c a And c + a b) ThenIf (a + b c And b + c a And c + a b) Then If a = b And a = c Then If a = b And a = c Then strstr

19、 = = 該三角形是等邊三角形該三角形是等邊三角形 ElseIfElseIf a = b Or a = c Or b = c Then a = b Or a = c Or b = c Then strstr = = 該三角形是等腰三角形該三角形是等腰三角形 a = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)案例案例3.2 3.2 條件語句條件語句IfThenIfThenElseIfElseIf語句語句ElseIfElseIf a a * * a + b a + b * * b = c b = c * * c Or b c Or b

20、 * * b + c b + c * * c = a c = a * * a Or c a Or c * * c + a c + a * * a = b a = b * * b Then b Then strstr = = 該三角形是直角三角形該三角形是直角三角形 Else Else strstr = = 該三角形是普通三角形該三角形是普通三角形 End If End IfElseElse strstr = = 不能組成三角形不能組成三角形 End IfEnd If 把把strstr的內(nèi)容顯示在界面上的某個控件上的內(nèi)容顯示在界面上的某個控件上End SubEnd SubLabel5.Capti

21、on = str Text4.Text=str案例案例3.3 3.3 條件語句條件語句Select CaseSelect Case語句語句3.3.1 3.3.1 案例說明案例說明 計算公民應(yīng)納個人所得稅。這里將個人所得稅具體計算問計算公民應(yīng)納個人所得稅。這里將個人所得稅具體計算問題理想化,假設(shè)以題理想化,假設(shè)以1000元作為標(biāo)準(zhǔn),元作為標(biāo)準(zhǔn),10001999的稅率為的稅率為5%,20004999的稅率為的稅率為10%,50009999的稅率為的稅率為25%,1000019999的稅率為的稅率為40%,20000以上的稅率為以上的稅率為45%。 用用Select CaseSelect Case語

22、句實現(xiàn)。語句實現(xiàn)。3.3.2 3.3.2 相關(guān)知識相關(guān)知識 語句格式:語句格式:Select Case Select Case 測試表達(dá)式測試表達(dá)式Case Case 表達(dá)式列表表達(dá)式列表1 1 語句塊語句塊1 1Case Case 表達(dá)式列表表達(dá)式列表2 2 語句塊語句塊2 2 Case Case 表達(dá)式列表表達(dá)式列表n n 語句塊語句塊n n Case Else Case Else 語句塊語句塊End SelectEnd Select案例案例3.3 3.3 條件語句條件語句Select CaseSelect Case語句語句 說明:說明:“測試表達(dá)式測試表達(dá)式”是必選項,可以是數(shù)值型或字符

23、型表達(dá)式。是必選項,可以是數(shù)值型或字符型表達(dá)式?!氨肀磉_(dá)式列表達(dá)式列表”可以有可以有3 3種形式。種形式。 表達(dá)式:用來表達(dá)一些具體的數(shù)值范圍。多個數(shù)值間用逗號表達(dá)式:用來表達(dá)一些具體的數(shù)值范圍。多個數(shù)值間用逗號分隔開,例如,分隔開,例如, Select case numberSelect case number Case 1 Case 1,2 2,3 3,4 4,5 5 Result= Result= 不合格不合格 Case 6Case 6,7 7 Result= Result= 合格合格 Case 8Case 8 Result= Result= 良好良好 Case ElseCase Els

24、e Result= Result= 優(yōu)秀優(yōu)秀 End SelectEnd Select案例案例3.3 3.3 條件語句條件語句Select CaseSelect Case語句語句 說明:說明: 表達(dá)式表達(dá)式 To To 表達(dá)式。這種表達(dá)式常用來表示一個數(shù)值范圍,表達(dá)式。這種表達(dá)式常用來表示一個數(shù)值范圍,數(shù)值小的放在數(shù)值小的放在ToTo前面。例如,前面。例如,Case Case a a To To z z 。以上判斷成。以上判斷成績等級示例可以改成績等級示例可以改成“表達(dá)式表達(dá)式 To To 表達(dá)式表達(dá)式”形式:形式: Case 1 To 5 Case 1 To 5 Result= Result

25、= 不合格不合格 Case 6 To 7Case 6 To 7 Result= Result= 合格合格 Case 8Case 8 Result= Result= 良好良好 Case ElseCase Else Result= Result= 優(yōu)秀優(yōu)秀 End SelectEnd Select Is Is表達(dá)式。通過表達(dá)式。通過IsIs與比較運算符結(jié)合,用來表示一個數(shù)值范與比較運算符結(jié)合,用來表示一個數(shù)值范圍。圍。例如,例如,Case Is6Case Is6 案例案例3.3 3.3 條件語句條件語句Select CaseSelect Case語句語句3.3.3 3.3.3 設(shè)計步驟設(shè)計步驟 (

26、1 1)建立程序初始界面。建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:案例演示:案例3.33.3 案例案例3.3 3.3 條件語句條件語句Select CaseSelect Case語句語句3.3.3 3.3.3 設(shè)計步驟設(shè)計步驟 (3)(3)編寫事件過程。編寫事件過程。Private Sub Command1_Click( )Private Sub Command1_Click( )Dim num As IntegerDim num As IntegerDim salary As Single, rate As Single, taxes As SingleDim salary

27、 As Single, rate As Single, taxes As SingleDim temp As StringDim temp As Stringtemp = temp = InputBoxInputBox(請輸入該公民的月收入:請輸入該公民的月收入:, , 月收入輸入窗口月收入輸入窗口)salary = Val(temp)salary = Val(temp)If (salary - 1000) 0 ThenIf (salary - 1000) 0 Then MsgBoxMsgBox 不需交納個人所得稅不需交納個人所得稅 ElseElse 案例案例3.3 3.3 條件語句條件語句S

28、elect CaseSelect Case語句語句num = num = Int(salaryInt(salary / 1000) / 1000) Select Case num Select Case num Case 1: rate = 0.05 Case 1: rate = 0.05 Case 2, 3, 4: rate = 0.1 Case 2, 3, 4: rate = 0.1 Case 5 To 9: rate = 0.25 Case 5 To 9: rate = 0.25 Case 10 To 19: rate = 0.4 Case 10 To 19: rate = 0.4 Ca

29、se Else Case Else rate = 0.45 rate = 0.45 End Select End Select taxes = (salary - 1000) taxes = (salary - 1000) * * rate rate MsgBoxMsgBox 應(yīng)交個人所得稅金額為:應(yīng)交個人所得稅金額為: & taxes & taxesEnd IfEnd IfEnd SubEnd Sub案例案例3.3 3.3 條件語句條件語句Select CaseSelect Case語句語句3.3.4 3.3.4 思考與練習(xí)思考與練習(xí) 1.1.為某航空公司計算票價的優(yōu)惠率。假

30、設(shè)優(yōu)惠規(guī)定如下:為某航空公司計算票價的優(yōu)惠率。假設(shè)優(yōu)惠規(guī)定如下:(1 1)在旅游的旺季)在旅游的旺季 7 9 7 9 月,如果訂票數(shù)超過月,如果訂票數(shù)超過 20 20 張,票張,票價優(yōu)惠價優(yōu)惠 15%15%,20 20 張以下,優(yōu)惠張以下,優(yōu)惠 5%5%;(2 2)在旅游的淡季)在旅游的淡季 1 51 5月、月、1010月、月、1111月,如果訂票數(shù)超過月,如果訂票數(shù)超過 20 20 張,票價優(yōu)惠張,票價優(yōu)惠 30%30%,20 20 張以下,優(yōu)惠張以下,優(yōu)惠 20%20%;(3 3)其他情況一律優(yōu)惠)其他情況一律優(yōu)惠 10% 10% 。請設(shè)計程序,根據(jù)月份和訂票張數(shù)決定票價的優(yōu)惠率。請設(shè)計程

31、序,根據(jù)月份和訂票張數(shù)決定票價的優(yōu)惠率。(設(shè)計界面,編寫完整的程序,上機(jī)實現(xiàn))(設(shè)計界面,編寫完整的程序,上機(jī)實現(xiàn))案例案例3.3 3.3 條件語句條件語句Select CaseSelect Case語句語句演示:票價演示:票價. .vbpvbp的界面的界面方法一:方法一:Select Case Select Case 語句中嵌套語句中嵌套IfThenElseIfThenElse語句語句Private Sub Command1_Click( )Private Sub Command1_Click( )Dim month As Integer, number As Integer, rate A

32、s IntegerDim month As Integer, number As Integer, rate As Integermonth = Val(Text1.Text)month = Val(Text1.Text)number = Val(Text2.Text)number = Val(Text2.Text)Select Case monthSelect Case month Case 1 To 5, 10, 11 Case 1 To 5, 10, 11 If number 20 Then rate = 20 Else rate = 30 If number 20 Then rate

33、= 20 Else rate = 30 Case 7 To 9 Case 7 To 9 If number 20 Then rate = 5 Else rate = 15 If number = 1 And month = 1 And month = 5) Or month = 10 Or month = 11 Then If number 20 Then rate = 20 Else rate = 30 If number = 7 And month = 7 And month = 9 Then If number 20 Then rate = 5 Else rate = 15 If num

34、ber 0 0 初值初值 終值終值 =1 =1 時時, ,可省略可省略0 終值終值=0 =0 死循環(huán)死循環(huán)step案例案例3.4 For3.4 For循環(huán)語句循環(huán)語句3.4.3 3.4.3 設(shè)計步驟設(shè)計步驟 (1 1)建立程序初始界面。)建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:案例演示:案例3.43.4案例案例3.4 For3.4 For循環(huán)語句循環(huán)語句(3)(3)編寫事件過程。編寫事件過程。 Private Sub Command1_Click( )Private Sub Command1_Click( )Dim sum As Integer, i As IntegerDi

35、m sum As Integer, i As Integersum = 0sum = 0 累加器初值置為累加器初值置為0 0。書上書上7777頁加注釋。頁加注釋。For i = For i = 1 1 To To 100100 sum = sum + i sum = sum + i 注意紅顏色的語句注意紅顏色的語句Next iNext iLabel2.Caption = Label2.Caption = Str(sumStr(sum) )Debug.Print sumDebug.Print sumEnd SubEnd Sub案例案例3.4 For3.4 For循環(huán)語句循環(huán)語句3.4.4 3.4

36、.4 思考與練習(xí)思考與練習(xí) (1 1)如果要實現(xiàn)如果要實現(xiàn) sum=1+2+3+10 sum=1+2+3+10 , 怎樣修改程序怎樣修改程序? ?(2 2)如果要實現(xiàn))如果要實現(xiàn) sum=30+31+32+50 sum=30+31+32+50 , 怎樣修改程序怎樣修改程序? ?(3 3)如果)如果 Label2.Caption = Label2.Caption = Str(sumStr(sum) ) 中中 sum sum 寫成寫成 samsam , , 即:即: Label2.Caption = Label2.Caption = Str(Str(samsam) )則,運行后,則,運行后,Lab

37、el2Label2的的CaptionCaption會變成什么?會變成什么?怎樣避免這種錯誤?怎樣避免這種錯誤?案例案例3.4 For3.4 For循環(huán)語句循環(huán)語句For i = 1 ToFor i = 1 To 10 10For i = For i = 3030 To To 5050強(qiáng)制變量聲明,強(qiáng)制變量聲明,Option ExplicitOption Explicit菜單:工具菜單:工具 選項選項 要求變量聲明要求變量聲明0 03.5.1 3.5.1 案例說明案例說明 用用 For For 循環(huán)實現(xiàn)求階乘循環(huán)實現(xiàn)求階乘 n n! 3.5.2 3.5.2 設(shè)計步驟設(shè)計步驟 (1 1)建立程序初

38、始界面。)建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:案例演示:案例3.53.5案例案例3.5 3.5 用用ForFor循環(huán)求階乘循環(huán)求階乘 (3)(3)編寫事件過程。編寫事件過程。Private Sub Command1_Click( )Private Sub Command1_Click( ) Dim n As Integer,i As IntegerDim n As Integer,i As Integer Dim result As Long Dim result As Long result=1 result=1 累乘,初值置為累乘,初值置為1 1。書上。書上7878頁

39、加注釋。頁加注釋。 n=n=CIntCInt(text1.text) (text1.text) 把表達(dá)式轉(zhuǎn)換為整型。把表達(dá)式轉(zhuǎn)換為整型。 If n=0 Then If n=0 Then Label2.Caption= Label2.Caption=請輸入正整數(shù)!請輸入正整數(shù)! Exit Sub Exit Sub 結(jié)束過程結(jié)束過程 End ifEnd if For i=1 To n For i=1 To n result=result result=result* *i i Next i Next i Label2.Caption= Label2.Caption=Str(nStr(n)+!=+)

40、+!=+Str(resultStr(result) )End SubEnd Sub案例案例3.5 3.5 用用ForFor循環(huán)求階乘循環(huán)求階乘3.5.3 3.5.3 思考與練習(xí)思考與練習(xí) (1 1)如果如果 result=1 result=1 寫成寫成 result=result=0 0 ,則運行后,則運行后,Label2Label2的的CaptionCaption會變成什么?會變成什么?(2 2)運行后,如果輸入的)運行后,如果輸入的 n =0,n =0, 1) 1) Exit Sub Exit Sub 2) End 2) End (如果如果 Exit Sub Exit Sub 寫成寫成 E

41、nd End ) 1 1),),2 2)中哪句會結(jié)束程序的運行?哪句會結(jié)束本次事件過中哪句會結(jié)束程序的運行?哪句會結(jié)束本次事件過程,等待下一次事件過程?程,等待下一次事件過程?0 02 2)結(jié)束程序的運行結(jié)束程序的運行1 1)結(jié)束本次事件過程,等待下一次事件過程)結(jié)束本次事件過程,等待下一次事件過程案例案例3.5 3.5 用用ForFor循環(huán)求階乘循環(huán)求階乘3.6.1 3.6.1 案例說明案例說明 用用 DoLoop DoLoop 循環(huán)結(jié)構(gòu)實現(xiàn)求和循環(huán)結(jié)構(gòu)實現(xiàn)求和sum=1+2+3+100sum=1+2+3+100。 案例案例3.6 DoLoop3.6 DoLoop循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)3.6.2

42、3.6.2 相關(guān)知識相關(guān)知識 DoLoopDoLoop循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) DoLoop語句較靈活,其常用格式有兩種。語句較靈活,其常用格式有兩種。語句格式語句格式1:Do While | Until conditionstatementsExit DostatementsLoop語句格式語句格式2:DostatementsExit DostatementsLoop While | Until condition案例案例3.6 DoLoop3.6 DoLoop循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) DoLoop Until執(zhí)行過程執(zhí)行過程 Do UntilLoopDo UntilLoop執(zhí)行過程執(zhí)行過程案例案例3.6

43、DoLoop3.6 DoLoop循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)語句條件表達(dá)式TrueFalse條件表達(dá)式循環(huán)語句TrueFalse3.6.3 3.6.3 設(shè)計步驟設(shè)計步驟 (1 1)建立程序初始界面。)建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:案例演示:案例3.63.6案例案例3.6 DoLoop3.6 DoLoop循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) (3)(3)編寫事件過程。編寫事件過程。解法一:采用當(dāng)型循環(huán)解法一:采用當(dāng)型循環(huán)Do WhileDo WhileLoopLoopPrivate Sub Command1_Click()Private Sub Command1_Click() Dim i As

44、 Integer,sum As Integer Dim i As Integer,sum As Integer i=1 i=1 循環(huán)變量循環(huán)變量初值置為初值置為1 1,8282頁修改頁修改-紅字部分紅字部分 sum=0 sum=0 累加器初值置為累加器初值置為0 0 Do While i=100Do While i100Do Until i100 sum=sum+i sum=sum+i i=i+1 i=i+1 LoopLoop Label2.Caption= Label2.Caption=Str(sumStr(sum) )End SubEnd Sub3.6.4 3.6.4 思考與練習(xí)思考與練習(xí)

45、 (1 1)如果如果 去掉去掉 i=i+1 i=i+1 ,則運行結(jié)果是什么?則運行結(jié)果是什么?程序運行出錯。錯誤原因:溢出。程序運行出錯。錯誤原因:溢出。請思考:為什么會溢出呢?請思考:為什么會溢出呢?案例案例3.5 3.5 用用ForFor循環(huán)求階乘循環(huán)求階乘3.7.1 3.7.1 案例說明案例說明 提示用戶輸入數(shù)字型數(shù)據(jù),并對所輸入的非負(fù)數(shù)進(jìn)行求和,用提示用戶輸入數(shù)字型數(shù)據(jù),并對所輸入的非負(fù)數(shù)進(jìn)行求和,用 WhileWend WhileWend 循環(huán)結(jié)構(gòu)實現(xiàn)。循環(huán)結(jié)構(gòu)實現(xiàn)。案例案例3.7 WhileWend3.7 WhileWend循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)3.7.3 3.7.3 設(shè)計步驟設(shè)計步驟

46、(1 1)建立程序初始界面。)建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:案例演示:案例3.73.7案例案例3.7 WhileWend3.7 WhileWend循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)(3)(3)編寫事件過程。編寫事件過程。Private Sub Command1_Click( )Private Sub Command1_Click( )Dim num As Integer, total As IntegerDim num As Integer, total As IntegerDim temp As StringDim temp As Stringnum = 0num = 0total

47、 = 0total = 0While num = 0While num = 0 total = total + num total = total + num temp = temp = InputBox(PleaseInputBox(Please enter a number:) enter a number:) num = Val(temp) num = Val(temp)WendWendLabel1.Caption = Label1.Caption = Str(totalStr(total) )End SubEnd Sub案例案例3.7 WhileWend3.7 WhileWend循環(huán)結(jié)

48、構(gòu)循環(huán)結(jié)構(gòu)3.7.4 3.7.4 思考與練習(xí)思考與練習(xí) (1 1)這個這個WhileWhile循環(huán)什么時候結(jié)束?循環(huán)什么時候結(jié)束?(2 2)這個)這個WhileWhile循環(huán)的循環(huán)次數(shù)是否固定?循環(huán)的循環(huán)次數(shù)是否固定?答:輸入負(fù)數(shù)時,循環(huán)結(jié)束。因為當(dāng)答:輸入負(fù)數(shù)時,循環(huán)結(jié)束。因為當(dāng) num =0num =0時,執(zhí)行循環(huán)體。時,執(zhí)行循環(huán)體。答:答:循環(huán)次數(shù)循環(huán)次數(shù)不不固定固定案例案例3.7 WhileWend3.7 WhileWend循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)3.8.1 3.8.1 案例說明案例說明 求求sum=1!+2!+3!+4!+5!sum=1!+2!+3!+4!+5!,用多重循環(huán)實現(xiàn)。用多重循環(huán)實

49、現(xiàn)。案例案例3.8 3.8 多重循環(huán)多重循環(huán) 3.8.2 3.8.2 相關(guān)知識相關(guān)知識 多重循環(huán)多重循環(huán) 如果在一個循環(huán)內(nèi)完整地包含另一個循環(huán)結(jié)構(gòu),則如果在一個循環(huán)內(nèi)完整地包含另一個循環(huán)結(jié)構(gòu),則稱為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而稱為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。 上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面是幾種常見的二重嵌套形式:是幾種常見的二重嵌套形式:案例案例3.8 3.8 多重循環(huán)多重循環(huán)3.8.3 3.8.3 設(shè)計

50、步驟設(shè)計步驟 (1 1)建立程序初始界面。)建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:案例演示:案例3.83.8案例案例3.8 3.8 多重循環(huán)多重循環(huán) (3)(3)編寫事件過程。編寫事件過程。 Private Sub Command1_Click( )Private Sub Command1_Click( ) Dim i As Integer, j As Integer, n As Integer Dim i As Integer, j As Integer, n As Integer Dim sum1 As Long, sum2 As Long Dim sum1 As Lo

51、ng, sum2 As Long n = 5 n = 5請請思考:怎樣使思考:怎樣使 n n 能夠變化?能夠變化?sum1 = 0 sum1 = 0 案例案例3.8 3.8 多重循環(huán)多重循環(huán)答:用答:用InputBoxInputBox語句實現(xiàn),或加控件:語句實現(xiàn),或加控件:Text1Text1n = n = Val(InputBoxVal(InputBox(請輸入請輸入n (n1,nn (n1,n為整數(shù)為整數(shù)), ), 輸入數(shù)據(jù)輸入數(shù)據(jù), 2), 2)或或n=Val(Text1.Text)n=Val(Text1.Text)For i = 1 To nFor i = 1 To n sum2 =

52、1 sum2 = 1 For j = 1 To i For j = 1 To i sum2 = sum2 sum2 = sum2 * * j j Next j Next j sum1 = sum1 + sum2 sum1 = sum1 + sum2Next iNext iLabel1.Caption = Label1.Caption = Label1.Caption + Str(sum1) Label1.Caption + Str(sum1)End SubEnd Sub案例案例3.8 3.8 多重循環(huán)多重循環(huán)(1 1)i=1 i=1 時,時,F(xiàn)or j=1 to 1For j=1 to 1(2

53、 2)i=2 i=2 時,時, For j=1 to 2For j=1 to 2(5 5)i=5 i=5 時,時,j=1 to 5j=1 to 5總結(jié):外重循環(huán)變量總結(jié):外重循環(huán)變量i i變化變化1 1次,內(nèi)重次,內(nèi)重循環(huán)關(guān)于循環(huán)關(guān)于j j的循環(huán)體可能執(zhí)行多次。的循環(huán)體可能執(zhí)行多次。For i = 1 To nFor i = 1 To n sum2 = 1 sum2 = 1 For j = 1 To i For j = 1 To i sum2 = sum2 sum2 = sum2 * * j j Next j Next j sum1 = sum1 + sum2 sum1 = sum1 + su

54、m2Next iNext iLabel1.Caption = Label1.Caption + Str(sum1)Label1.Caption = Label1.Caption + Str(sum1)End SubEnd Sub案例案例3.8 3.8 多重循環(huán)多重循環(huán)(1 1)i=1 i=1 時,時,sum2=1sum2=1For j=1 to 1For j=1 to 1 1) j=1 sum2=sum2 1) j=1 sum2=sum2* *j=1j=1* *1=11=1sum1=sum1+sum2=0+1=1sum1=sum1+sum2=0+1=1For i = 1 To nFor i =

55、 1 To n sum2 = 1 sum2 = 1 For j = 1 To i For j = 1 To i sum2 = sum2 sum2 = sum2 * * j j Next j Next j sum1 = sum1 + sum2 sum1 = sum1 + sum2Next iNext i案例案例3.8 3.8 多重循環(huán)多重循環(huán)(2 2)i=2 i=2 時,時, sum2=1sum2=1For j=1 to 2For j=1 to 2 1) j=1 sum2=sum2 1) j=1 sum2=sum2* *j=1j=1* *1=11=1 2) j=2 sum2=sum2 2) j=

56、2 sum2=sum2* *j=1j=1* *2=22=2sum1=sum1+sum2=1+2=3sum1=sum1+sum2=1+2=3 For i = 1 To nFor i = 1 To n sum2 = 1 sum2 = 1 For j = 1 To iFor j = 1 To i sum2 = sum2 sum2 = sum2 * * j j Next j Next j sum1 = sum1 + sum2 sum1 = sum1 + sum2Next iNext i案例案例3.8 3.8 多重循環(huán)多重循環(huán)(3 3)i=3 i=3 時,時, sum2=1sum2=1For j=1 t

57、o 3For j=1 to 3 1) j=1 sum2=sum2 1) j=1 sum2=sum2* *j=1j=1* *1=11=1 2) j=2 sum2=sum2 2) j=2 sum2=sum2* *j=1j=1* *2=22=2 3) j=3 sum2=sum2 3) j=3 sum2=sum2* *j=2j=2* *3=63=6sum1=sum1+sum2=3+6=9sum1=sum1+sum2=3+6=9 案例案例3.8 3.8 多重循環(huán)多重循環(huán)請請思考:思考: 書上書上 頁頁 習(xí)題三習(xí)題三書上書上 3.1 3.1 輸入輸入3 3個數(shù),輸出其中的最大數(shù)。個數(shù),輸出其中的最大數(shù)。(

58、1 1)建立程序初始界面。)建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:演示:3.1 3.1 題題習(xí)題三習(xí)題三(3)(3)編寫事件過程。編寫事件過程。Private Sub Command1_Click( )Private Sub Command1_Click( )Dim a As SingDim a As Singl le, b As Singe, b As Singl le, c As Singe, c As Singl le, max As Singe, max As Singl le ea = a = ValVal(Text1.Text)(Text1.Text)b = b

59、 = ValVal(Text2.Text)(Text2.Text)c = c = ValVal(Text3.Text)(Text3.Text)IfIf a b Then a b Then max = a max = aElseElse max = b max = bEnd End IfIf習(xí)題三習(xí)題三IfIf c max Then c max Then max = c max = cEnd End IfIfLabeLabel4l4.Caption = .Caption = 最大的數(shù)是:最大的數(shù)是: + + Str(maxStr(max) )End SubEnd Sub習(xí)題三習(xí)題三3.2 3.2

60、 輸入一行字符,分別統(tǒng)計其中數(shù)字、英文字母、空格的個數(shù)。輸入一行字符,分別統(tǒng)計其中數(shù)字、英文字母、空格的個數(shù)。 (1 1)建立程序初始界面。)建立程序初始界面。(2 2) 設(shè)置屬性。設(shè)置屬性。 演示:演示:3.2 3.2 題題習(xí)題三習(xí)題三(3)(3)編寫事件過程。編寫事件過程。Dim num1 As Integer, num2 As Integer, num3 As IntegerDim num1 As Integer, num2 As Integer, num3 As Integer 注意定義注意定義num1,num2,num3num1,num2,num3的位置的位置Private Sub Form_Load( )Private Sub Form_Load( )num1 = 0num1 = 0num2 = 0num2

溫馨提示

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

評論

0/150

提交評論