程序流程控制課件_第1頁
程序流程控制課件_第2頁
程序流程控制課件_第3頁
程序流程控制課件_第4頁
程序流程控制課件_第5頁
已閱讀5頁,還剩141頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)及其應(yīng)用本章難點(diǎn):選擇的嵌套及多重循環(huán)結(jié)構(gòu)第三章程序流程控制本章內(nèi)容及要求:案例3.1條件語句If…Then…Else[3.1.1案例說明]輸入x,計(jì)算y的值。其中:(1)當(dāng)x>6時(shí),y=x+3(2)當(dāng)x≤6時(shí),y=4x

案例3.1條件語句If…Then…Else[3.1.1案案例3.1條件語句If…Then…Else[3.1.2相關(guān)知識]

1.1.If…Then結(jié)構(gòu)這種結(jié)構(gòu)常稱為簡單分支結(jié)構(gòu),如圖所示。它一般有兩種形式:單行和多行語句。單行語句格式:If條件表達(dá)式Then語句多行語句格式:If條件表達(dá)式Then語句塊EndIf案例3.1條件語句If…Then…Else[3.1.2相例如:對語句Ifa>bThenmax=a也可改成多行結(jié)構(gòu)形式:Ifa>bThenmax=aEndIf案例3.1條件語句If…Then…Else例如:對語句案例3.1條件語句If…Then…Else2.If…Then…Else結(jié)構(gòu)語句格式:If條件表達(dá)式Then語句塊1Else語句塊2EndIf例如,如果成績大于60分,則在屏幕上顯示“合格”,否則在屏幕上顯示“不合格”。Ifscore>60thenMsgBox合格ElseMsgBox不合格EndIf

案例3.1條件語句If…Then…Else2.If…Then…Else結(jié)構(gòu)3.多重If語句語句格式:語句格式:If條件表達(dá)式1Then語句塊1ElseIf條件表達(dá)式2Then語句塊2ElseIf條件表達(dá)式3Then語句塊3……ElseIf條件表達(dá)式nThen語句塊nElse語句塊EndIf

案例3.1條件語句If…Then…Else3.多重If語句語句格式:案例3.1條件語句If…Then…Else[3.1.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.1的補(bǔ)充例題

案例3.1條件語句If…Then…Else[3.1.3設(shè)案例3.1條件語句If…Then…Else[3.1.3設(shè)計(jì)步驟](3)編寫事件過程。PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx>6Theny=x+3Elsey=4*xEndIfText2.Text=Str(y)EndSub

案例3.1條件語句If…Then…Else[3.1.3設(shè)案例3.1條件語句If…Then…Else[3.1.4思考與練習(xí)]

1.編程實(shí)現(xiàn):輸入一個整數(shù),判斷它是奇數(shù)還是偶數(shù),并輸出相應(yīng)的提示信息。用If…Then…Else語句實(shí)現(xiàn)。(設(shè)計(jì)界面,編寫完整的程序,上機(jī)實(shí)現(xiàn))DimnAsInteger,strAsString……‘從界面上的某個控件獲得變量n的值IfnMod2=0Thenstr="偶數(shù)"Elsestr="奇數(shù)"EndIf……‘把str的內(nèi)容顯示在界面上的某個控件上案例3.1條件語句If…Then…Else[3.1.4思案例3.1條件語句If…Then…Else[3.1.4思考與練習(xí)]2.以下程序運(yùn)行時(shí),輸出結(jié)果是什么?PrivateSubCommand1_Click()y=1Ify<>0Thenx=5Ify<0Thenx=4Elsex=3EndIfPrint"x=";xEndSubx=3案例3.1條件語句If…Then…Else[3.1.4思案例3.2條件語句If…Then…ElseIf語句[3.2.1案例說明]對所輸入的整數(shù)進(jìn)行判斷,若輸入數(shù)為正數(shù),則顯示“大于零”,若輸入數(shù)為負(fù)數(shù),則顯示“小于零”,否則顯示“等于零”。用If…Then…ElseIf語句實(shí)現(xiàn)。案例3.2條件語句If…Then…ElseIf語句[3.2[3.2.2設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.2

案例3.2條件語句If…Then…ElseIf語句[3.2.2設(shè)計(jì)步驟]案例3.2條件語句If…Then…[3.2.2設(shè)計(jì)步驟](3)編寫事件過程。PrivateSubCommand1_Click()IfVal(Text1.Text)<0ThenText2.Text="小于零"ElseIfVal(Text1.Text)>0ThenText2.Text="大于零"ElseText2.Text="等于零"EndIfEndSub案例3.2條件語句If…Then…ElseIf語句[3.2.2設(shè)計(jì)步驟]案例3.2條件語句If…Then…[3.2.3思考與練習(xí)]

1.為鐵路編寫計(jì)算運(yùn)費(fèi)的程序。假設(shè)鐵路托運(yùn)行李,規(guī)定每張客票托運(yùn)費(fèi)的計(jì)算方法是:行李重量不超過50kg時(shí),每千克0.25元;超過50kg而不超過100kg時(shí),其超過部分每千克0.35元;超過100kg時(shí),其超過部分每千克0.45元。用If…Then…ElseIf語句實(shí)現(xiàn)。

(設(shè)計(jì)界面,編寫完整的程序,上機(jī)實(shí)現(xiàn))分析:托運(yùn)費(fèi)的分段函數(shù)是什么?答:設(shè)行李重量為w公斤,應(yīng)付托運(yùn)費(fèi)為x元,則托運(yùn)費(fèi)的分段函數(shù)是:(1)w<=50時(shí),x=0.25*w(2)50<w<=100時(shí),x=0.25*50+0.35*(w-50)(3)w>100時(shí),x=0.25*50+0.35*50+0.45*(w-100)案例3.2條件語句If…Then…ElseIf語句[3.2.3思考與練習(xí)]答:設(shè)行李重量為w公斤,應(yīng)付托運(yùn)費(fèi)PrivateSubCommand1_Click()DimwAsSingle,xAsSinglew=Val(Text1.Text)Ifw<=50Thenx=0.25*wElseIfw>50Andw<=100Thenx=0.25*50+0.35*(w-50)ElseIfw>100Thenx=0.25*50+0.35*50+0.45*(w-100)‘如果把最后一句Text2.Text=Str(x)寫在此處,效果是什么?EndIf案例3.2條件語句If…Then…ElseIf語句‘不能寫成:50<w<=100‘不能寫成:Text1.Text=w答:只有當(dāng)重量w>100時(shí),才輸出托運(yùn)費(fèi)。其他情況,不輸出托運(yùn)費(fèi)。PrivateSubCommand1_Click()Text2.Text=Str(x)EndSub注意:運(yùn)行程序時(shí),w<50,50<w<=100,w>100幾種情況都要運(yùn)行,看結(jié)果是否正確。案例3.2條件語句If…Then…ElseIf語句‘不能寫成:x=Text2.TextText2.Text=Str(x)案例3.2條件語句[3.2.4思考與練習(xí)]2.根據(jù)輸入三角形三邊判斷能否組成三角形,若可以則判斷輸出三角形的類型。用If…Then…ElseIf語句實(shí)現(xiàn)。

(設(shè)計(jì)界面,編寫完整的程序,上機(jī)實(shí)現(xiàn))

說明:三角形的類型有:等邊三角形,等腰三角形,直角三角形,普通三角形。案例3.2條件語句If…Then…ElseIf語句請思考:(1)怎樣判斷三角形是等邊三角形?(2)怎樣判斷三角形是等腰三角形?(3)怎樣判斷三角形是直角三角形?[3.2.4思考與練習(xí)]案例3.2條件語句If…Then案例3.2條件語句If…Then…ElseIf語句PrivateSubCommand1_Click()DimaAsInteger,bAsInteger,cAsInteger,strAsString……‘從界面上的某些控件獲得變量a,b,c的值If(a+b>cAndb+c>aAndc+a>b)ThenIfa=bAnda=cThenstr="該三角形是等邊三角形"ElseIfa=bOra=cOrb=cThenstr="該三角形是等腰三角形"a=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)案例3.2條件語句If…Then…ElseIf語句Priv案例3.2條件語句If…Then…ElseIf語句ElseIfa*a+b*b=c*cOrb*b+c*c=a*aOrc*c+a*a=b*bThenstr="該三角形是直角三角形"Elsestr="該三角形是普通三角形"EndIfElsestr="不能組成三角形"EndIf……‘把str的內(nèi)容顯示在界面上的某個控件上EndSubLabel5.Caption=str‘Text4.Text=str案例3.2條件語句If…Then…ElseIf語句Else案例3.3條件語句SelectCase語句[3.3.1案例說明]計(jì)算公民應(yīng)納個人所得稅。這里將個人所得稅具體計(jì)算問題理想化,假設(shè)以1000元作為標(biāo)準(zhǔn),1000~1999的稅率為5%,2000~4999的稅率為10%,5000~9999的稅率為25%,10000~19999的稅率為40%,20000以上的稅率為45%。

用SelectCase語句實(shí)現(xiàn)。案例3.3條件語句SelectCase語句[3.3.1[3.3.2相關(guān)知識]語句格式:SelectCase測試表達(dá)式Case表達(dá)式列表1語句塊1Case表達(dá)式列表2語句塊2……Case表達(dá)式列表n語句塊nCaseElse語句塊EndSelect案例3.3條件語句SelectCase語句[3.3.2相關(guān)知識]案例3.3條件語句SelectC

說明:“測試表達(dá)式”是必選項(xiàng),可以是數(shù)值型或字符型表達(dá)式?!氨磉_(dá)式列表”可以有3種形式。①表達(dá)式:用來表達(dá)一些具體的數(shù)值范圍。多個數(shù)值間用逗號分隔開,例如,SelectcasenumberCase1,2,3,4,5Result=不合格Case6,7Result=合格Case8Result=良好CaseElseResult=優(yōu)秀EndSelect案例3.3條件語句SelectCase語句說明:案例3.3條件語句SelectCase語句

說明:②表達(dá)式To表達(dá)式。這種表達(dá)式常用來表示一個數(shù)值范圍,數(shù)值小的放在To前面。例如,CaseaToz。以上判斷成績等級示例可以改成“表達(dá)式To表達(dá)式”形式:Case1To5Result=不合格Case6To7Result=合格Case8Result=良好CaseElseResult=優(yōu)秀EndSelect③Is表達(dá)式。通過Is與比較運(yùn)算符結(jié)合,用來表示一個數(shù)值范圍。例如,CaseIs>6

案例3.3條件語句SelectCase語句說明:案例3.3條件語句SelectCase語句[3.3.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.3

案例3.3條件語句SelectCase語句[3.3.3設(shè)計(jì)步驟]案例3.3條件語句SelectC[3.3.3設(shè)計(jì)步驟](3)編寫事件過程。PrivateSubCommand1_Click()DimnumAsIntegerDimsalaryAsSingle,rateAsSingle,taxesAsSingleDimtempAsStringtemp=InputBox("請輸入該公民的月收入:","月收入輸入窗口")salary=Val(temp)If(salary-1000)<0ThenMsgBox"不需交納個人所得稅"Else

案例3.3條件語句SelectCase語句[3.3.3設(shè)計(jì)步驟]案例3.3條件語句SelectCnum=Int(salary/1000)SelectCasenumCase1:rate=0.05Case2,3,4:rate=0.1Case5To9:rate=0.25Case10To19:rate=0.4CaseElserate=0.45EndSelecttaxes=(salary-1000)*rateMsgBox"應(yīng)交個人所得稅金額為:"&taxesEndIfEndSub案例3.3條件語句SelectCase語句num=Int(salary/1000)案例3.3[3.3.4思考與練習(xí)]

1.為某航空公司計(jì)算票價(jià)的優(yōu)惠率。假設(shè)優(yōu)惠規(guī)定如下:(1)在旅游的旺季7–9月,如果訂票數(shù)超過20張,票價(jià)優(yōu)惠15%,20張以下,優(yōu)惠5%;(2)在旅游的淡季1–5月、10月、11月,如果訂票數(shù)超過20張,票價(jià)優(yōu)惠30%,20張以下,優(yōu)惠20%;(3)其他情況一律優(yōu)惠10%。請?jiān)O(shè)計(jì)程序,根據(jù)月份和訂票張數(shù)決定票價(jià)的優(yōu)惠率。(設(shè)計(jì)界面,編寫完整的程序,上機(jī)實(shí)現(xiàn))案例3.3條件語句SelectCase語句演示:票價(jià).vbp的界面[3.3.4思考與練習(xí)]案例3.3條件語句Select方法一:SelectCase語句中嵌套If…Then…Else語句PrivateSubCommand1_Click()DimmonthAsInteger,numberAsInteger,rateAsIntegermonth=Val(Text1.Text)number=Val(Text2.Text)SelectCasemonthCase1To5,10,11Ifnumber<20Thenrate=20Elserate=30Case7To9Ifnumber<20Thenrate=5Elserate=15

案例3.3條件語句SelectCase語句方法一:SelectCase語句中嵌套If…Then…E

CaseElserate=10EndSelectLabel4.Caption="所訂機(jī)票的優(yōu)惠率為:"&Str(rate)&"%"EndSub案例3.3條件語句SelectCase語句CaseElse案例3.3條件語句SelectCas方法二:If…Then…ElseIf語句中嵌套If…Then…Else語句PrivateSubCommand2_Click()DimmonthAsInteger,numberAsInteger,rateAsIntegermonth=Val(Text1.Text)number=Val(Text2.Text)If(month>=1Andmonth<=5)Ormonth=10Ormonth=11ThenIfnumber<20Thenrate=20Elserate=30ElseIfmonth>=7Andmonth<=9ThenIfnumber<20Thenrate=5Elserate=15Elserate=10案例3.3條件語句SelectCase語句方法二:If…Then…ElseIf語句中嵌套If…TheEndIfLabel4.Caption="所訂機(jī)票的優(yōu)惠率為:"&Str(rate)&"%"EndSub案例3.3條件語句SelectCase語句EndIf案例3.3條件語句SelectCase語句案例3.4For…Next[3.4.1案例說明]求sum=1+2+3+…+100。用For…Next循環(huán)結(jié)構(gòu)實(shí)現(xiàn)案例3.4For…Next[3.4.1案例說明][3.4.2相關(guān)知識]1.For循環(huán)語句(一般用于循環(huán)次數(shù)已知)語句格式:Forcounter=startToend[Stepincrement]語句塊1[ExitFor]語句塊2Next[counter]

>0初值<終值=1時(shí),可省略<0初值>終值=0死循環(huán)step案例3.4For循環(huán)語句[3.4.2相關(guān)知識]>0初值<終值step案[3.4.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.4案例3.4For循環(huán)語句[3.4.3設(shè)計(jì)步驟]案例3.4For循環(huán)語句(3)編寫事件過程。PrivateSubCommand1_Click()DimsumAsInteger,iAsIntegersum=0‘累加器初值置為0。書上77頁加注釋。Fori=1To100

sum=sum+i‘注意紅顏色的語句NextiLabel2.Caption=Str(sum)'Debug.PrintsumEndSub案例3.4For循環(huán)語句(3)編寫事件過程。PrivateSubCommand[3.4.4思考與練習(xí)](1)如果要實(shí)現(xiàn)sum=1+2+3+…+10,怎樣修改程序?(2)如果要實(shí)現(xiàn)sum=30+31+32+…+50,怎樣修改程序?(3)如果Label2.Caption=Str(sum)中sum寫成sam,即:Label2.Caption=Str(sam)則,運(yùn)行后,Label2的Caption會變成什么?怎樣避免這種錯誤?案例3.4For循環(huán)語句Fori=1To10Fori=30To50強(qiáng)制變量聲明,OptionExplicit菜單:工具選項(xiàng)要求變量聲明0[3.4.4思考與練習(xí)]案例3.4For循環(huán)語句Fo[3.5.1案例說明]用For循環(huán)實(shí)現(xiàn)求階乘n![3.5.2設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.5案例3.5用For循環(huán)求階乘[3.5.1案例說明]案例3.5用For循環(huán)求階乘

(3)編寫事件過程。PrivateSubCommand1_Click()DimnAsInteger,iAsIntegerDimresultAsLong

result=1‘累乘,初值置為1。書上78頁加注釋。n=CInt(text1.text)‘把表達(dá)式轉(zhuǎn)換為整型。Ifn<=0ThenLabel2.Caption="請輸入正整數(shù)!"ExitSub'結(jié)束過程EndifFori=1Tonresult=result*iNextiLabel2.Caption=Str(n)+"!="+Str(result)EndSub案例3.5用For循環(huán)求階乘(3)編寫事件過程。案例3.5用For循環(huán)求階乘[3.5.3思考與練習(xí)](1)如果result=1寫成result=0,則運(yùn)行后,Label2的Caption會變成什么?(2)運(yùn)行后,如果輸入的n<=0,1)ExitSub2)End(如果ExitSub寫成End)

1),2)中哪句會結(jié)束程序的運(yùn)行?哪句會結(jié)束本次事件過程,等待下一次事件過程?02)結(jié)束程序的運(yùn)行1)結(jié)束本次事件過程,等待下一次事件過程案例3.5用For循環(huán)求階乘[3.5.3思考與練習(xí)]02)結(jié)束程序的運(yùn)行案例3.5[3.6.1案例說明]用Do…Loop循環(huán)結(jié)構(gòu)實(shí)現(xiàn)求和sum=1+2+3+…+100。案例3.6Do…Loop循環(huán)結(jié)構(gòu)[3.6.1案例說明]案例3.6Do…Loop循環(huán)結(jié)構(gòu)[3.6.2相關(guān)知識]Do…Loop循環(huán)結(jié)構(gòu)

Do…Loop語句較靈活,其常用格式有兩種。語句格式1:Do[{While|Until}condition][statements][ExitDo][statements]Loop語句格式2:Do[statements][ExitDo][statements]Loop[{While|Until}condition]案例3.6Do…Loop循環(huán)結(jié)構(gòu)[3.6.2相關(guān)知識]Do…Loop語句較靈活,其常用格Do…LoopUntil執(zhí)行過程DoUntil…Loop執(zhí)行過程案例3.6Do…Loop循環(huán)結(jié)構(gòu)Do…LoopUntil執(zhí)行過程[3.6.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.6案例3.6Do…Loop循環(huán)結(jié)構(gòu)[3.6.3設(shè)計(jì)步驟]案例3.6Do…Loop循環(huán)結(jié)構(gòu)

(3)編寫事件過程。解法一:采用當(dāng)型循環(huán)DoWhile…LoopPrivateSubCommand1_Click()DimiAsInteger,sumAsIntegeri=1‘循環(huán)變量初值置為1,82頁修改---紅字部分sum=0'累加器初值置為0

DoWhilei<=100'當(dāng)型循環(huán)sum=sum+ii=i+1'每次循環(huán)變量加1

LoopLabel2.Caption=Str(sum)EndSub

解法二:采用直到型循環(huán)DoUntil…LoopPrivateSubCommand1_Click()DimiAsInteger,sumAsIntegeri=1'循環(huán)變量初值置為1sum=0'累加器初值置為0

DoUntili>100sum=sum+ii=i+1

LoopLabel2.Caption=Str(sum)EndSub解法二:采用直到型循環(huán)[3.6.4思考與練習(xí)](1)如果去掉i=i+1,則運(yùn)行結(jié)果是什么?程序運(yùn)行出錯。錯誤原因:溢出。請思考:為什么會溢出呢?案例3.5用For循環(huán)求階乘[3.6.4思考與練習(xí)]程序運(yùn)行出錯。錯誤原因:溢出。案例[3.7.1案例說明]提示用戶輸入數(shù)字型數(shù)據(jù),并對所輸入的非負(fù)數(shù)進(jìn)行求和,用While…Wend循環(huán)結(jié)構(gòu)實(shí)現(xiàn)。案例3.7While…Wend循環(huán)結(jié)構(gòu)[3.7.1案例說明]案例3.7While…Wend循[3.7.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.7案例3.7While…Wend循環(huán)結(jié)構(gòu)[3.7.3設(shè)計(jì)步驟]案例3.7While…Wend循(3)編寫事件過程。PrivateSubCommand1_Click()DimnumAsInteger,totalAsIntegerDimtempAsStringnum=0total=0Whilenum>=0total=total+numtemp=InputBox("Pleaseenteranumber:")num=Val(temp)WendLabel1.Caption=Str(total)EndSub案例3.7While…Wend循環(huán)結(jié)構(gòu)(3)編寫事件過程。PrivateSubCommand1[3.7.4思考與練習(xí)](1)這個While循環(huán)什么時(shí)候結(jié)束?(2)這個While循環(huán)的循環(huán)次數(shù)是否固定?答:輸入負(fù)數(shù)時(shí),循環(huán)結(jié)束。因?yàn)楫?dāng)num>=0時(shí),執(zhí)行循環(huán)體。答:循環(huán)次數(shù)不固定案例3.7While…Wend循環(huán)結(jié)構(gòu)[3.7.4思考與練習(xí)]答:輸入負(fù)數(shù)時(shí),循環(huán)結(jié)束。因?yàn)楫?dāng)[3.8.1案例說明]求sum=1!+2!+3!+4!+5!,用多重循環(huán)實(shí)現(xiàn)。案例3.8多重循環(huán)[3.8.1案例說明]案例3.8多重循環(huán)

[3.8.2相關(guān)知識]多重循環(huán)如果在一個循環(huán)內(nèi)完整地包含另一個循環(huán)結(jié)構(gòu),則稱為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面是幾種常見的二重嵌套形式:案例3.8多重循環(huán)[3.8.2相關(guān)知識]案例3.8多重循環(huán)[3.8.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.8案例3.8多重循環(huán)[3.8.3設(shè)計(jì)步驟]案例3.8多重循環(huán)

(3)編寫事件過程。

PrivateSubCommand1_Click()DimiAsInteger,jAsInteger,nAsIntegerDimsum1AsLong,sum2AsLongn=5‘請思考:怎樣使n能夠變化?sum1=0案例3.8多重循環(huán)答:用InputBox語句實(shí)現(xiàn),或加控件:Text1n=Val(InputBox("請輸入n(n>1,n為整數(shù))","輸入數(shù)據(jù)",2))或n=Val(Text1.Text)(3)編寫事件過程。案例3.8多重循環(huán)答:用IFori=1Tonsum2=1Forj=1Toisum2=sum2*jNextjsum1=sum1+sum2NextiLabel1.Caption=Label1.Caption+Str(sum1)EndSub案例3.8多重循環(huán)(1)i=1時(shí),……Forj=1to1……(2)i=2時(shí),……Forj=1to2……(5)i=5時(shí),j=1to5總結(jié):外重循環(huán)變量i變化1次,內(nèi)重循環(huán)關(guān)于j的循環(huán)體可能執(zhí)行多次。Fori=1Ton案例3.8多重循環(huán)(1)i=Fori=1Tonsum2=1Forj=1Toisum2=sum2*jNextjsum1=sum1+sum2NextiLabel1.Caption=Label1.Caption+Str(sum1)EndSub案例3.8多重循環(huán)(1)i=1時(shí),sum2=1Forj=1to11)j=1sum2=sum2*j=1*1=1sum1=sum1+sum2=0+1=1Fori=1Ton案例3.8多重循環(huán)(1)i=Fori=1Tonsum2=1Forj=1Toisum2=sum2*jNextjsum1=sum1+sum2Nexti案例3.8多重循環(huán)(2)i=2時(shí),sum2=1Forj=1to21)j=1sum2=sum2*j=1*1=12)j=2sum2=sum2*j=1*2=2sum1=sum1+sum2=1+2=3

Fori=1Ton案例3.8多重循環(huán)(2)i=Fori=1Tonsum2=1

Forj=1Toisum2=sum2*jNextjsum1=sum1+sum2Nexti案例3.8多重循環(huán)(3)i=3時(shí),sum2=1Forj=1to31)j=1sum2=sum2*j=1*1=12)j=2sum2=sum2*j=1*2=23)j=3sum2=sum2*j=2*3=6sum1=sum1+sum2=3+6=9

Fori=1Ton案例3.8多重循環(huán)(3)i=案例3.8多重循環(huán)請思考:書上頁

案例3.8多重循環(huán)請思考:習(xí)題三書上3.1輸入3個數(shù),輸出其中的最大數(shù)。(1)建立程序初始界面。(2)設(shè)置屬性。演示:3.1題習(xí)題三書上習(xí)題三(3)編寫事件過程。PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSingle,maxAsSinglea=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)Ifa>bThenmax=aElsemax=bEndIf習(xí)題三(3)編寫事件過程。習(xí)題三Ifc>maxThenmax=cEndIfLabel4.Caption="最大的數(shù)是:"+Str(max)EndSub習(xí)題三Ifc>maxThen習(xí)題三3.2輸入一行字符,分別統(tǒng)計(jì)其中數(shù)字、英文字母、空格的個數(shù)。

(1)建立程序初始界面。(2)設(shè)置屬性。演示:3.2題習(xí)題三3.2輸入一行字符,分別統(tǒng)計(jì)其中數(shù)字、英文字母、空格習(xí)題三(3)編寫事件過程。Dimnum1AsInteger,num2AsInteger,num3AsInteger'注意定義num1,num2,num3的位置PrivateSubForm_Load()num1=0num2=0num3=0EndSub習(xí)題三(3)編寫事件過程。習(xí)題三PrivateSubText1_KeyPress(KeyAsciiAsInteger)Dimch1AsString*1ch1=Chr(KeyAscii)‘Chr()見教材56頁表2.12SelectCasech1Case"0"To"9"num1=num1+1Case"A"To"Z","a"To"z"num2=num2+1Case""num3=num3+1EndSelect習(xí)題三PrivateSubText1_KeyPress(習(xí)題三EndSubPrivateSubCommand1_Click()Dimmsg1AsString,msg2AsString,msg3AsStringmsg1="數(shù)字有"&num1&"個,"msg2="英文字母有"&num2&"個,"msg3="空格有"&num3&"個。"Label2.Caption=msg1&msg2&msg3EndSub習(xí)題三EndSub習(xí)題三PrivateSubCommand2_Click()Text1.Text=""Label2.Caption=""Text1.SetFocus‘設(shè)置焦點(diǎn)num1=0num2=0num3=0EndSub習(xí)題三習(xí)題三3.4試編程將學(xué)生的百分制成績轉(zhuǎn)換成等級制,90分以上為“A”等,80~89分為“B”等,79~60分為“C”等,60分以下為D等。

(1)建立程序初始界面。(2)設(shè)置屬性。演示:3.4題習(xí)題三3.4試編程將學(xué)生的百分制成績轉(zhuǎn)換成等級制,90分以習(xí)題三(3)編寫事件過程。PrivateSubCommand1_Click()DimscoreAsSingleDimresultAsStringscore=Val(Text1.Text)SelectCaseInt(score)Case0To59result="D"Case60To79result="C"

習(xí)題三(3)編寫事件過程。習(xí)題三Case80To89result="B"Case90To100result="A"CaseElseMsgBox"輸入數(shù)據(jù)錯誤,請輸入100以內(nèi)的數(shù)!"Text1.Text=""Text1.SetFocusEndSelectLabel2.Caption=resultEndSub習(xí)題三Case80To89習(xí)題三PrivateSubText1_Change()Label2.Caption=""EndSub習(xí)題三PrivateSubText1_Change()演講完畢,謝謝觀看!演講完畢,謝謝觀看!第三章程序流程控制第三章程序流程控制第三章程序流程控制本章內(nèi)容及要求:1.熟練掌握行if語句、塊if結(jié)構(gòu)、SelectCase情況選擇結(jié)構(gòu)的使用,掌握選擇的嵌套結(jié)構(gòu);2.熟練掌握實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的For/Next循環(huán)結(jié)構(gòu)及ExitFor語句、Do/Loop循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán)。本章重點(diǎn):

選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)及其應(yīng)用本章難點(diǎn):選擇的嵌套及多重循環(huán)結(jié)構(gòu)第三章程序流程控制本章內(nèi)容及要求:案例3.1條件語句If…Then…Else[3.1.1案例說明]輸入x,計(jì)算y的值。其中:(1)當(dāng)x>6時(shí),y=x+3(2)當(dāng)x≤6時(shí),y=4x

案例3.1條件語句If…Then…Else[3.1.1案案例3.1條件語句If…Then…Else[3.1.2相關(guān)知識]

1.1.If…Then結(jié)構(gòu)這種結(jié)構(gòu)常稱為簡單分支結(jié)構(gòu),如圖所示。它一般有兩種形式:單行和多行語句。單行語句格式:If條件表達(dá)式Then語句多行語句格式:If條件表達(dá)式Then語句塊EndIf案例3.1條件語句If…Then…Else[3.1.2相例如:對語句Ifa>bThenmax=a也可改成多行結(jié)構(gòu)形式:Ifa>bThenmax=aEndIf案例3.1條件語句If…Then…Else例如:對語句案例3.1條件語句If…Then…Else2.If…Then…Else結(jié)構(gòu)語句格式:If條件表達(dá)式Then語句塊1Else語句塊2EndIf例如,如果成績大于60分,則在屏幕上顯示“合格”,否則在屏幕上顯示“不合格”。Ifscore>60thenMsgBox合格ElseMsgBox不合格EndIf

案例3.1條件語句If…Then…Else2.If…Then…Else結(jié)構(gòu)3.多重If語句語句格式:語句格式:If條件表達(dá)式1Then語句塊1ElseIf條件表達(dá)式2Then語句塊2ElseIf條件表達(dá)式3Then語句塊3……ElseIf條件表達(dá)式nThen語句塊nElse語句塊EndIf

案例3.1條件語句If…Then…Else3.多重If語句語句格式:案例3.1條件語句If…Then…Else[3.1.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.1的補(bǔ)充例題

案例3.1條件語句If…Then…Else[3.1.3設(shè)案例3.1條件語句If…Then…Else[3.1.3設(shè)計(jì)步驟](3)編寫事件過程。PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx>6Theny=x+3Elsey=4*xEndIfText2.Text=Str(y)EndSub

案例3.1條件語句If…Then…Else[3.1.3設(shè)案例3.1條件語句If…Then…Else[3.1.4思考與練習(xí)]

1.編程實(shí)現(xiàn):輸入一個整數(shù),判斷它是奇數(shù)還是偶數(shù),并輸出相應(yīng)的提示信息。用If…Then…Else語句實(shí)現(xiàn)。(設(shè)計(jì)界面,編寫完整的程序,上機(jī)實(shí)現(xiàn))DimnAsInteger,strAsString……‘從界面上的某個控件獲得變量n的值IfnMod2=0Thenstr="偶數(shù)"Elsestr="奇數(shù)"EndIf……‘把str的內(nèi)容顯示在界面上的某個控件上案例3.1條件語句If…Then…Else[3.1.4思案例3.1條件語句If…Then…Else[3.1.4思考與練習(xí)]2.以下程序運(yùn)行時(shí),輸出結(jié)果是什么?PrivateSubCommand1_Click()y=1Ify<>0Thenx=5Ify<0Thenx=4Elsex=3EndIfPrint"x=";xEndSubx=3案例3.1條件語句If…Then…Else[3.1.4思案例3.2條件語句If…Then…ElseIf語句[3.2.1案例說明]對所輸入的整數(shù)進(jìn)行判斷,若輸入數(shù)為正數(shù),則顯示“大于零”,若輸入數(shù)為負(fù)數(shù),則顯示“小于零”,否則顯示“等于零”。用If…Then…ElseIf語句實(shí)現(xiàn)。案例3.2條件語句If…Then…ElseIf語句[3.2[3.2.2設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.2

案例3.2條件語句If…Then…ElseIf語句[3.2.2設(shè)計(jì)步驟]案例3.2條件語句If…Then…[3.2.2設(shè)計(jì)步驟](3)編寫事件過程。PrivateSubCommand1_Click()IfVal(Text1.Text)<0ThenText2.Text="小于零"ElseIfVal(Text1.Text)>0ThenText2.Text="大于零"ElseText2.Text="等于零"EndIfEndSub案例3.2條件語句If…Then…ElseIf語句[3.2.2設(shè)計(jì)步驟]案例3.2條件語句If…Then…[3.2.3思考與練習(xí)]

1.為鐵路編寫計(jì)算運(yùn)費(fèi)的程序。假設(shè)鐵路托運(yùn)行李,規(guī)定每張客票托運(yùn)費(fèi)的計(jì)算方法是:行李重量不超過50kg時(shí),每千克0.25元;超過50kg而不超過100kg時(shí),其超過部分每千克0.35元;超過100kg時(shí),其超過部分每千克0.45元。用If…Then…ElseIf語句實(shí)現(xiàn)。

(設(shè)計(jì)界面,編寫完整的程序,上機(jī)實(shí)現(xiàn))分析:托運(yùn)費(fèi)的分段函數(shù)是什么?答:設(shè)行李重量為w公斤,應(yīng)付托運(yùn)費(fèi)為x元,則托運(yùn)費(fèi)的分段函數(shù)是:(1)w<=50時(shí),x=0.25*w(2)50<w<=100時(shí),x=0.25*50+0.35*(w-50)(3)w>100時(shí),x=0.25*50+0.35*50+0.45*(w-100)案例3.2條件語句If…Then…ElseIf語句[3.2.3思考與練習(xí)]答:設(shè)行李重量為w公斤,應(yīng)付托運(yùn)費(fèi)PrivateSubCommand1_Click()DimwAsSingle,xAsSinglew=Val(Text1.Text)Ifw<=50Thenx=0.25*wElseIfw>50Andw<=100Thenx=0.25*50+0.35*(w-50)ElseIfw>100Thenx=0.25*50+0.35*50+0.45*(w-100)‘如果把最后一句Text2.Text=Str(x)寫在此處,效果是什么?EndIf案例3.2條件語句If…Then…ElseIf語句‘不能寫成:50<w<=100‘不能寫成:Text1.Text=w答:只有當(dāng)重量w>100時(shí),才輸出托運(yùn)費(fèi)。其他情況,不輸出托運(yùn)費(fèi)。PrivateSubCommand1_Click()Text2.Text=Str(x)EndSub注意:運(yùn)行程序時(shí),w<50,50<w<=100,w>100幾種情況都要運(yùn)行,看結(jié)果是否正確。案例3.2條件語句If…Then…ElseIf語句‘不能寫成:x=Text2.TextText2.Text=Str(x)案例3.2條件語句[3.2.4思考與練習(xí)]2.根據(jù)輸入三角形三邊判斷能否組成三角形,若可以則判斷輸出三角形的類型。用If…Then…ElseIf語句實(shí)現(xiàn)。

(設(shè)計(jì)界面,編寫完整的程序,上機(jī)實(shí)現(xiàn))

說明:三角形的類型有:等邊三角形,等腰三角形,直角三角形,普通三角形。案例3.2條件語句If…Then…ElseIf語句請思考:(1)怎樣判斷三角形是等邊三角形?(2)怎樣判斷三角形是等腰三角形?(3)怎樣判斷三角形是直角三角形?[3.2.4思考與練習(xí)]案例3.2條件語句If…Then案例3.2條件語句If…Then…ElseIf語句PrivateSubCommand1_Click()DimaAsInteger,bAsInteger,cAsInteger,strAsString……‘從界面上的某些控件獲得變量a,b,c的值If(a+b>cAndb+c>aAndc+a>b)ThenIfa=bAnda=cThenstr="該三角形是等邊三角形"ElseIfa=bOra=cOrb=cThenstr="該三角形是等腰三角形"a=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)案例3.2條件語句If…Then…ElseIf語句Priv案例3.2條件語句If…Then…ElseIf語句ElseIfa*a+b*b=c*cOrb*b+c*c=a*aOrc*c+a*a=b*bThenstr="該三角形是直角三角形"Elsestr="該三角形是普通三角形"EndIfElsestr="不能組成三角形"EndIf……‘把str的內(nèi)容顯示在界面上的某個控件上EndSubLabel5.Caption=str‘Text4.Text=str案例3.2條件語句If…Then…ElseIf語句Else案例3.3條件語句SelectCase語句[3.3.1案例說明]計(jì)算公民應(yīng)納個人所得稅。這里將個人所得稅具體計(jì)算問題理想化,假設(shè)以1000元作為標(biāo)準(zhǔn),1000~1999的稅率為5%,2000~4999的稅率為10%,5000~9999的稅率為25%,10000~19999的稅率為40%,20000以上的稅率為45%。

用SelectCase語句實(shí)現(xiàn)。案例3.3條件語句SelectCase語句[3.3.1[3.3.2相關(guān)知識]語句格式:SelectCase測試表達(dá)式Case表達(dá)式列表1語句塊1Case表達(dá)式列表2語句塊2……Case表達(dá)式列表n語句塊nCaseElse語句塊EndSelect案例3.3條件語句SelectCase語句[3.3.2相關(guān)知識]案例3.3條件語句SelectC

說明:“測試表達(dá)式”是必選項(xiàng),可以是數(shù)值型或字符型表達(dá)式?!氨磉_(dá)式列表”可以有3種形式。①表達(dá)式:用來表達(dá)一些具體的數(shù)值范圍。多個數(shù)值間用逗號分隔開,例如,SelectcasenumberCase1,2,3,4,5Result=不合格Case6,7Result=合格Case8Result=良好CaseElseResult=優(yōu)秀EndSelect案例3.3條件語句SelectCase語句說明:案例3.3條件語句SelectCase語句

說明:②表達(dá)式To表達(dá)式。這種表達(dá)式常用來表示一個數(shù)值范圍,數(shù)值小的放在To前面。例如,CaseaToz。以上判斷成績等級示例可以改成“表達(dá)式To表達(dá)式”形式:Case1To5Result=不合格Case6To7Result=合格Case8Result=良好CaseElseResult=優(yōu)秀EndSelect③Is表達(dá)式。通過Is與比較運(yùn)算符結(jié)合,用來表示一個數(shù)值范圍。例如,CaseIs>6

案例3.3條件語句SelectCase語句說明:案例3.3條件語句SelectCase語句[3.3.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.3

案例3.3條件語句SelectCase語句[3.3.3設(shè)計(jì)步驟]案例3.3條件語句SelectC[3.3.3設(shè)計(jì)步驟](3)編寫事件過程。PrivateSubCommand1_Click()DimnumAsIntegerDimsalaryAsSingle,rateAsSingle,taxesAsSingleDimtempAsStringtemp=InputBox("請輸入該公民的月收入:","月收入輸入窗口")salary=Val(temp)If(salary-1000)<0ThenMsgBox"不需交納個人所得稅"Else

案例3.3條件語句SelectCase語句[3.3.3設(shè)計(jì)步驟]案例3.3條件語句SelectCnum=Int(salary/1000)SelectCasenumCase1:rate=0.05Case2,3,4:rate=0.1Case5To9:rate=0.25Case10To19:rate=0.4CaseElserate=0.45EndSelecttaxes=(salary-1000)*rateMsgBox"應(yīng)交個人所得稅金額為:"&taxesEndIfEndSub案例3.3條件語句SelectCase語句num=Int(salary/1000)案例3.3[3.3.4思考與練習(xí)]

1.為某航空公司計(jì)算票價(jià)的優(yōu)惠率。假設(shè)優(yōu)惠規(guī)定如下:(1)在旅游的旺季7–9月,如果訂票數(shù)超過20張,票價(jià)優(yōu)惠15%,20張以下,優(yōu)惠5%;(2)在旅游的淡季1–5月、10月、11月,如果訂票數(shù)超過20張,票價(jià)優(yōu)惠30%,20張以下,優(yōu)惠20%;(3)其他情況一律優(yōu)惠10%。請?jiān)O(shè)計(jì)程序,根據(jù)月份和訂票張數(shù)決定票價(jià)的優(yōu)惠率。(設(shè)計(jì)界面,編寫完整的程序,上機(jī)實(shí)現(xiàn))案例3.3條件語句SelectCase語句演示:票價(jià).vbp的界面[3.3.4思考與練習(xí)]案例3.3條件語句Select方法一:SelectCase語句中嵌套If…Then…Else語句PrivateSubCommand1_Click()DimmonthAsInteger,numberAsInteger,rateAsIntegermonth=Val(Text1.Text)number=Val(Text2.Text)SelectCasemonthCase1To5,10,11Ifnumber<20Thenrate=20Elserate=30Case7To9Ifnumber<20Thenrate=5Elserate=15

案例3.3條件語句SelectCase語句方法一:SelectCase語句中嵌套If…Then…E

CaseElserate=10EndSelectLabel4.Caption="所訂機(jī)票的優(yōu)惠率為:"&Str(rate)&"%"EndSub案例3.3條件語句SelectCase語句CaseElse案例3.3條件語句SelectCas方法二:If…Then…ElseIf語句中嵌套If…Then…Else語句PrivateSubCommand2_Click()DimmonthAsInteger,numberAsInteger,rateAsIntegermonth=Val(Text1.Text)number=Val(Text2.Text)If(month>=1Andmonth<=5)Ormonth=10Ormonth=11ThenIfnumber<20Thenrate=20Elserate=30ElseIfmonth>=7Andmonth<=9ThenIfnumber<20Thenrate=5Elserate=15Elserate=10案例3.3條件語句SelectCase語句方法二:If…Then…ElseIf語句中嵌套If…TheEndIfLabel4.Caption="所訂機(jī)票的優(yōu)惠率為:"&Str(rate)&"%"EndSub案例3.3條件語句SelectCase語句EndIf案例3.3條件語句SelectCase語句案例3.4For…Next[3.4.1案例說明]求sum=1+2+3+…+100。用For…Next循環(huán)結(jié)構(gòu)實(shí)現(xiàn)案例3.4For…Next[3.4.1案例說明][3.4.2相關(guān)知識]1.For循環(huán)語句(一般用于循環(huán)次數(shù)已知)語句格式:Forcounter=startToend[Stepincrement]語句塊1[ExitFor]語句塊2Next[counter]

>0初值<終值=1時(shí),可省略<0初值>終值=0死循環(huán)step案例3.4For循環(huán)語句[3.4.2相關(guān)知識]>0初值<終值step案[3.4.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.4案例3.4For循環(huán)語句[3.4.3設(shè)計(jì)步驟]案例3.4For循環(huán)語句(3)編寫事件過程。PrivateSubCommand1_Click()DimsumAsInteger,iAsIntegersum=0‘累加器初值置為0。書上77頁加注釋。Fori=1To100

sum=sum+i‘注意紅顏色的語句NextiLabel2.Caption=Str(sum)'Debug.PrintsumEndSub案例3.4For循環(huán)語句(3)編寫事件過程。PrivateSubCommand[3.4.4思考與練習(xí)](1)如果要實(shí)現(xiàn)sum=1+2+3+…+10,怎樣修改程序?(2)如果要實(shí)現(xiàn)sum=30+31+32+…+50,怎樣修改程序?(3)如果Label2.Caption=Str(sum)中sum寫成sam,即:Label2.Caption=Str(sam)則,運(yùn)行后,Label2的Caption會變成什么?怎樣避免這種錯誤?案例3.4For循環(huán)語句Fori=1To10Fori=30To50強(qiáng)制變量聲明,OptionExplicit菜單:工具選項(xiàng)要求變量聲明0[3.4.4思考與練習(xí)]案例3.4For循環(huán)語句Fo[3.5.1案例說明]用For循環(huán)實(shí)現(xiàn)求階乘n![3.5.2設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.5案例3.5用For循環(huán)求階乘[3.5.1案例說明]案例3.5用For循環(huán)求階乘

(3)編寫事件過程。PrivateSubCommand1_Click()DimnAsInteger,iAsIntegerDimresultAsLong

result=1‘累乘,初值置為1。書上78頁加注釋。n=CInt(text1.text)‘把表達(dá)式轉(zhuǎn)換為整型。Ifn<=0ThenLabel2.Caption="請輸入正整數(shù)!"ExitSub'結(jié)束過程EndifFori=1Tonresult=result*iNextiLabel2.Caption=Str(n)+"!="+Str(result)EndSub案例3.5用For循環(huán)求階乘(3)編寫事件過程。案例3.5用For循環(huán)求階乘[3.5.3思考與練習(xí)](1)如果result=1寫成result=0,則運(yùn)行后,Label2的Caption會變成什么?(2)運(yùn)行后,如果輸入的n<=0,1)ExitSub2)End(如果ExitSub寫成End)

1),2)中哪句會結(jié)束程序的運(yùn)行?哪句會結(jié)束本次事件過程,等待下一次事件過程?02)結(jié)束程序的運(yùn)行1)結(jié)束本次事件過程,等待下一次事件過程案例3.5用For循環(huán)求階乘[3.5.3思考與練習(xí)]02)結(jié)束程序的運(yùn)行案例3.5[3.6.1案例說明]用Do…Loop循環(huán)結(jié)構(gòu)實(shí)現(xiàn)求和sum=1+2+3+…+100。案例3.6Do…Loop循環(huán)結(jié)構(gòu)[3.6.1案例說明]案例3.6Do…Loop循環(huán)結(jié)構(gòu)[3.6.2相關(guān)知識]Do…Loop循環(huán)結(jié)構(gòu)

Do…Loop語句較靈活,其常用格式有兩種。語句格式1:Do[{While|Until}condition][statements][ExitDo][statements]Loop語句格式2:Do[statements][ExitDo][statements]Loop[{While|Until}condition]案例3.6Do…Loop循環(huán)結(jié)構(gòu)[3.6.2相關(guān)知識]Do…Loop語句較靈活,其常用格Do…LoopUntil執(zhí)行過程DoUntil…Loop執(zhí)行過程案例3.6Do…Loop循環(huán)結(jié)構(gòu)Do…LoopUntil執(zhí)行過程[3.6.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.6案例3.6Do…Loop循環(huán)結(jié)構(gòu)[3.6.3設(shè)計(jì)步驟]案例3.6Do…Loop循環(huán)結(jié)構(gòu)

(3)編寫事件過程。解法一:采用當(dāng)型循環(huán)DoWhile…LoopPrivateSubCommand1_Click()DimiAsInteger,sumAsIntegeri=1‘循環(huán)變量初值置為1,82頁修改---紅字部分sum=0'累加器初值置為0

DoWhilei<=100'當(dāng)型循環(huán)sum=sum+ii=i+1'每次循環(huán)變量加1

LoopLabel2.Caption=Str(sum)EndSub

解法二:采用直到型循環(huán)DoUntil…LoopPrivateSubCommand1_Click()DimiAsInteger,sumAsIntegeri=1'循環(huán)變量初值置為1sum=0'累加器初值置為0

DoUntili>100sum=sum+ii=i+1

LoopLabel2.Caption=Str(sum)EndSub解法二:采用直到型循環(huán)[3.6.4思考與練習(xí)](1)如果去掉i=i+1,則運(yùn)行結(jié)果是什么?程序運(yùn)行出錯。錯誤原因:溢出。請思考:為什么會溢出呢?案例3.5用For循環(huán)求階乘[3.6.4思考與練習(xí)]程序運(yùn)行出錯。錯誤原因:溢出。案例[3.7.1案例說明]提示用戶輸入數(shù)字型數(shù)據(jù),并對所輸入的非負(fù)數(shù)進(jìn)行求和,用While…Wend循環(huán)結(jié)構(gòu)實(shí)現(xiàn)。案例3.7While…Wend循環(huán)結(jié)構(gòu)[3.7.1案例說明]案例3.7While…Wend循[3.7.3設(shè)計(jì)步驟](1)建立程序初始界面。(2)設(shè)置屬性。演示:案例3.7案例3.7While…Wend循環(huán)結(jié)構(gòu)[3.7.3設(shè)計(jì)步驟]案例3.7While…Wend循(3)編寫事件過程。PrivateSubCommand1_Click()DimnumAsInteger,totalAsIntegerDimtempAsStringnum=0total=0Whilenum>=0total=total+numtemp=InputBox("Pleaseenteranumber:")num=Val(temp)WendLabel1.Caption=Str(total)EndSub案例3.7While…Wend循環(huán)結(jié)構(gòu)(3)編寫事件過程。PrivateSubCommand1[3.7.4思考與練習(xí)](1)這個While循環(huán)什么時(shí)候結(jié)束?(2)這個While循環(huán)的循環(huán)次數(shù)是否固定?答:輸入負(fù)數(shù)時(shí),循環(huán)結(jié)束。因?yàn)楫?dāng)num>=0時(shí),執(zhí)行循環(huán)體。答:循環(huán)次數(shù)不固定

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論