版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第7章VisualBasic控制結(jié)構(gòu)主講教師:劉瀟(計科系)聯(lián)系電話Q:421877450E-mail:liuxiao528@163.com1本章討論VisualBasic中除順序結(jié)構(gòu)之外的流程控制語句,包括選擇結(jié)構(gòu)、多分支結(jié)構(gòu)及循環(huán)結(jié)構(gòu)語句。目錄7.1選擇控制結(jié)構(gòu)多分支控制結(jié)構(gòu)7.2For循環(huán)控制結(jié)構(gòu)7.3當循環(huán)控制結(jié)構(gòu)7.47.5Do循環(huán)控制結(jié)構(gòu)多重循環(huán)7.6GoTo型控制7.77.1選擇控制結(jié)構(gòu)If...Then語句格式:
If條件Then語句或If條件Then語句塊EndIf功能:如果條件成立(值為真),則執(zhí)行Then后面的語句或語句塊,否則直接執(zhí)行下一條語句或“EndIf”的下一條語句。7.1選擇控制結(jié)構(gòu)編寫一段代碼實現(xiàn):單擊窗體,在彈出的輸入對話框中輸入成績(CJ)數(shù)值,當成績(CJ<60時),顯示“成績不及格”,換行顯示“請參加補考”。PrivateSubForm_Click()CJ=Val(InputBox("請輸入成績數(shù)值:","成績判斷"))If
CJ<60
Then
Print"成績不及格"Print"請參加補考"EndIfEndSub7.1選擇控制結(jié)構(gòu)If...Then...Else語句格式:
If條件Then語句塊1(A)Else語句塊2(B)EndIf功能:首先測試條件,當條件成立時,執(zhí)行語句塊1;當條件不成立時,執(zhí)行語句塊2。執(zhí)行完語句塊2之后,執(zhí)行“EndIf”之后的語句。7.1選擇控制結(jié)構(gòu)輸入三個數(shù):a、b、c,求出其中最大數(shù)。PrivateSubCommand1_Click()DimaAsSingle,bAsSingleDimcAsSingle,mAsSinglea=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)Ifa<bThenm=bElsem=aEndIf
Ifm<cThenm=cText4.Text=mEndSub7.1選擇控制結(jié)構(gòu)IIf函數(shù)格式:
result=IIf(條件,True部分,False部分)功能:當“條件”為真時,IIf函數(shù)返回“True部分”,而當“條件”為假時返回“False部分”。例如:將a、b中的小數(shù),放在Min變量中。
Min=IIf(a<b,a,b)7.1選擇控制結(jié)構(gòu)ElseIf格式格式:
If條件1Then語句塊1[ElseIf條件2Then語句塊2][ElseIf條件3Then語句塊3]......[Else語句塊n]EndIf功能?7.1選擇控制結(jié)構(gòu)輸入學(xué)生成績(百分制),判斷該成績的等級(優(yōu)良、及格、不及格)PrivateSubCommand1_Click()DimscoreAsInteger,tempAsStringscore=Val(Text1.Text)temp="成績等級為:"Ifscore<0ThenLabel2.Caption="成績出錯"ElseIfscore<60ThenLabel2.Caption=temp+"不及格"ElseIfscore<=79ThenLabel2.Caption=temp+"及格"ElseIf
score<=100ThenLabel2.Caption=temp+"優(yōu)良"ElseLabel2.Caption="成績出錯"EndIfEndSub7.2多分支控制結(jié)構(gòu)SelectCase語句格式:SelectCase測試表達式Case表達式表列1[語句塊1][Case表達式表列2[語句塊2]]......[CaseElse[語句塊n]]EndSelect功能:先計算表達式的值,然后將該值依次與結(jié)構(gòu)中的每個Case值進行比較,如果該值符合某個Case指定的值條件時,就執(zhí)行該Case的語句塊,然后跳到EndSelect,從EndSelect出口。如果沒有相符合的Case值,則執(zhí)行CaseElse中的語句塊。三種寫法:Case1,3,5Case60To80CaseIs<507.2多分支控制結(jié)構(gòu)輸入學(xué)生成績(百分制),判斷該成績的等級(優(yōu)良、及格、不及格)PrivateSubCommand1_Click()DimscoreAsInteger,tempAsStringscore=Val(Text1.Text)temp="成績等級為:"SelectCasescore
Case
0to59Label2.Caption=temp+"不及格"
Case60to79Label2.Caption=temp+"及格"
Case80to100Label2.Caption=temp+"優(yōu)良"
CaseElseLabel2.Caption="成績出錯"EndSelectEndSub7.2多分支控制結(jié)構(gòu)輸入兩個運算數(shù)和運算符(+、-、*、/),組成算式并計算結(jié)果,然后顯示出來。PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,tAsSingle,sAsStringa=Val(Text1.Text)b=Val(Text2.Text)SelectCaseTrue
CaseOption1.Values="+":t=a+b
CaseOption2.Values="-":t=a-b
CaseOption3.Values="*":t=a*b
CaseOption4.Values="/":t=a/bEndSelectText3.Text=a&s&b&"="&tEndSub7.3For循環(huán)控制結(jié)構(gòu)For...Next循環(huán)語句格式:
For循環(huán)變量=初值To終值[Step步長值]循環(huán)體Next循環(huán)變量功能:本語句指定循環(huán)變量取一系列數(shù)值,并且對循環(huán)變量的每一個值把循環(huán)體執(zhí)行一次。初值、終值和步長值都是數(shù)值表達式步長值為正數(shù)時,為遞增循環(huán);反之,為遞減循環(huán)。若步長值為1,則Step1可以省略。7.3For循環(huán)控制結(jié)構(gòu)求S=1+2+3+4…+98+99+100采用Print在窗體上直接輸出結(jié)果PrivateSubForm_Load()Shows=0
Fork=1To100s=s+k
NextPrint"s=";sEndSub結(jié)果:7.3For循環(huán)控制結(jié)構(gòu)求T=8!=1×2×3×4…×8采用Print在窗體上直接輸出結(jié)果PrivateSubForm_Load()Show
t=1
For
c=1To
8
t=t
*
c
NextPrint"T=";tEndSub結(jié)果:7.4當循環(huán)控制結(jié)構(gòu)While...Wend循環(huán)語句格式:
While條件循環(huán)體Wend功能:當條件成立時,執(zhí)行循環(huán)體;當條件不成立時,終止循環(huán)。與For循環(huán)的區(qū)別:For:對循環(huán)體執(zhí)行指定的次數(shù);While:在指定的條件為True時重復(fù)一語句序列(循環(huán)體)的執(zhí)行。7.4當循環(huán)控制結(jié)構(gòu)求T=8!=1×2×3×4…×8采用Print在窗體上直接輸出結(jié)果采用While...Wend循環(huán)語句PrivateSubForm_Load()DimcAsIntegerShowt=1c=1
Whilec<=8t=t*cc=c+1WendPrint"T=";tEndSub結(jié)果:7.5Do循環(huán)控制結(jié)構(gòu)Do...Loop循環(huán)語句格式1:
Do[{While|Until}條件]
循環(huán)體Loop功能:當指定的“循環(huán)條件”為真或直到指定的“循環(huán)條件”變?yōu)檎嬷?,重?fù)執(zhí)行循環(huán)體格式2:
Do
循環(huán)體
Loop[{While|Until}條件]7.5Do循環(huán)控制結(jié)構(gòu)Do…LoopUntil循環(huán)邏輯框圖Do…LoopWhile循環(huán)邏輯框圖7.5Do循環(huán)控制結(jié)構(gòu)DoUntil…Loop循環(huán)邏輯框圖
DoWhile…Loop循環(huán)邏輯框圖7.5Do循環(huán)控制結(jié)構(gòu)求S=12+22+…+1002采用DoWhile...Loop語句采用Print直接在窗體上輸出結(jié)果,程序代碼PrivateSubForm_load()DimnAsInteger,sAsLongShown=1:s=0
DoWhilen<=100s=s+n*nn=n+1
LoopPrint"s=";sEndSub程序運行結(jié)果:S=3383507.5Do循環(huán)控制結(jié)構(gòu)輸入兩個正整數(shù),求它們的最大公約數(shù)用“輾轉(zhuǎn)相除法”算法:求出m/n余數(shù)p,若p=0,n即為最大公約數(shù);若p非0,則把原來的分母n作為新的分子m,把余數(shù)p作為新的分母n繼續(xù)求解。PrivateSubcommand1_click()DimmAsInteger,nAsInteger,pAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)
Ifm<=0Orn<=0ThenMsgBox"數(shù)據(jù)錯誤!"EndEndIfDop=mModnm=nn=p
LoopWhilep<>0Text3.Text=mEndSub補充:循環(huán)控制結(jié)構(gòu)循環(huán)出口語句格式:Exit{For|Do}
功能:直接從For循環(huán)或Do循環(huán)中退出當程序運行時遇到Exit語句時,就不再執(zhí)行循環(huán)體中的任何語句而直接退出,轉(zhuǎn)到循環(huán)語句(Next、Loop)的下面繼續(xù)執(zhí)行補充:循環(huán)控制結(jié)構(gòu)設(shè)計一個“加法器”程序,把每次輸入的數(shù)累加。當輸入-1時結(jié)束程序的運行。PrivateSubForm_load()
DimxAsSingle,SumAsSingleShowSum=0DoWhileTrue
x=Val(InputBox(“請輸入要加入的數(shù)_(-1表示結(jié)束)","輸入數(shù)據(jù)"))
Ifx=-1Then
ExitDo
EndIfSum=Sum+xText1.Text=SumLoopMsgBox"累加運算結(jié)束“EndSub7.6多重循環(huán)多重循環(huán)程序示例PrivateSubForm_load()Show
Fori=1To3'外循環(huán)
Forj=5To7'內(nèi)循環(huán)
Printi,j
Nextj
NextiEndSub多重循環(huán)是指循環(huán)體內(nèi)含有循環(huán)語句的循環(huán)注意內(nèi)、外循環(huán)層次要分清,不能交叉。程序運行結(jié)果:1 51 61 72 52 62 73 53 63 77.6多重循環(huán)編一程序,輸出下列所示的圖形。
本例可采用兩重循環(huán)來實現(xiàn)。外循環(huán)控制輸出7行,內(nèi)循環(huán)控制每行輸出要求的字符數(shù)。在進入內(nèi)循環(huán)之前,使用PrintTab()來對起始輸出位置定位,退出內(nèi)循環(huán)后,使用Print來控制換行。7.6多重循環(huán)編一程序,輸出下列所示的圖形。PrivateSubForm_load()Show
Fori=1To7PrintTab(10-
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國美甲行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實施研究報告
- 2025-2030年中國社區(qū)養(yǎng)老服務(wù)行業(yè)并購重組擴張戰(zhàn)略制定與實施研究報告
- 2025-2030年中國智能公交行業(yè)并購重組擴張戰(zhàn)略制定與實施研究報告
- 2025-2030年中國旅居康養(yǎng)行業(yè)開拓第二增長曲線戰(zhàn)略制定與實施研究報告
- 2025-2030年中國動態(tài)稱重儀器儀表行業(yè)營銷創(chuàng)新戰(zhàn)略制定與實施研究報告
- 新形勢下乘用車變速器行業(yè)快速做大市場規(guī)模戰(zhàn)略制定與實施研究報告
- 市政道路監(jiān)理質(zhì)量評估報告
- 建設(shè)項目從前期立項到竣工備案所有手續(xù)辦理詳細流程
- 者柯哨安全工作總結(jié)報告
- 建設(shè)監(jiān)理對工程質(zhì)量控制的方法和程序
- 山東省煙臺市2025屆高三上學(xué)期期末學(xué)業(yè)水平診斷政治試卷(含答案)
- 2025北京石景山初二(上)期末數(shù)學(xué)真題試卷(含答案解析)
- 北師大版四年級下冊數(shù)學(xué)課件第1課時 買文具
- 青貯產(chǎn)品銷售合同樣本
- 2024年冷庫倉儲服務(wù)協(xié)議3篇
- 中國轎貨車的車保養(yǎng)項目投資可行性研究報告
- 人工智能在體育訓(xùn)練中的應(yīng)用
- 2024-2030年中國液態(tài)金屬行業(yè)市場分析報告
- 住宅樓智能化系統(tǒng)工程施工組織設(shè)計方案
- 高二上學(xué)期數(shù)學(xué)北師大版(2019)期末模擬測試卷A卷(含解析)
- 2024-2025學(xué)年度第一學(xué)期四年級數(shù)學(xué)寒假作業(yè)
評論
0/150
提交評論