版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第7章VisualBasic控制結(jié)構(gòu)主講教師:劉瀟(計(jì)科系)聯(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當(dāng)循環(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)編寫一段代碼實(shí)現(xiàn):單擊窗體,在彈出的輸入對(duì)話框中輸入成績(CJ)數(shù)值,當(dāng)成績(CJ<60時(shí)),顯示“成績不及格”,換行顯示“請(qǐng)參加補(bǔ)考”。PrivateSubForm_Click()CJ=Val(InputBox("請(qǐng)輸入成績數(shù)值:","成績判斷"))If
CJ<60
Then
Print"成績不及格"Print"請(qǐng)參加補(bǔ)考"EndIfEndSub7.1選擇控制結(jié)構(gòu)If...Then...Else語句格式:
If條件Then語句塊1(A)Else語句塊2(B)EndIf功能:首先測試條件,當(dāng)條件成立時(shí),執(zhí)行語句塊1;當(dāng)條件不成立時(shí),執(zhí)行語句塊2。執(zhí)行完語句塊2之后,執(zhí)行“EndIf”之后的語句。7.1選擇控制結(jié)構(gòu)輸入三個(gè)數(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部分)功能:當(dāng)“條件”為真時(shí),IIf函數(shù)返回“True部分”,而當(dāng)“條件”為假時(shí)返回“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é)生成績(百分制),判斷該成績的等級(jí)(優(yōu)良、及格、不及格)PrivateSubCommand1_Click()DimscoreAsInteger,tempAsStringscore=Val(Text1.Text)temp="成績等級(jí)為:"Ifscore<0ThenLabel2.Caption="成績出錯(cuò)"ElseIfscore<60ThenLabel2.Caption=temp+"不及格"ElseIfscore<=79ThenLabel2.Caption=temp+"及格"ElseIf
score<=100ThenLabel2.Caption=temp+"優(yōu)良"ElseLabel2.Caption="成績出錯(cuò)"EndIfEndSub7.2多分支控制結(jié)構(gòu)SelectCase語句格式:SelectCase測試表達(dá)式Case表達(dá)式表列1[語句塊1][Case表達(dá)式表列2[語句塊2]]......[CaseElse[語句塊n]]EndSelect功能:先計(jì)算表達(dá)式的值,然后將該值依次與結(jié)構(gòu)中的每個(gè)Case值進(jìn)行比較,如果該值符合某個(gè)Case指定的值條件時(shí),就執(zhí)行該Case的語句塊,然后跳到EndSelect,從EndSelect出口。如果沒有相符合的Case值,則執(zhí)行CaseElse中的語句塊。三種寫法:Case1,3,5Case60To80CaseIs<507.2多分支控制結(jié)構(gòu)輸入學(xué)生成績(百分制),判斷該成績的等級(jí)(優(yōu)良、及格、不及格)PrivateSubCommand1_Click()DimscoreAsInteger,tempAsStringscore=Val(Text1.Text)temp="成績等級(jí)為:"SelectCasescore
Case
0to59Label2.Caption=temp+"不及格"
Case60to79Label2.Caption=temp+"及格"
Case80to100Label2.Caption=temp+"優(yōu)良"
CaseElseLabel2.Caption="成績出錯(cuò)"EndSelectEndSub7.2多分支控制結(jié)構(gòu)輸入兩個(gè)運(yùn)算數(shù)和運(yùn)算符(+、-、*、/),組成算式并計(jì)算結(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ù)值,并且對(duì)循環(huán)變量的每一個(gè)值把循環(huán)體執(zhí)行一次。初值、終值和步長值都是數(shù)值表達(dá)式步長值為正數(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當(dāng)循環(huán)控制結(jié)構(gòu)While...Wend循環(huán)語句格式:
While條件循環(huán)體Wend功能:當(dāng)條件成立時(shí),執(zhí)行循環(huán)體;當(dāng)條件不成立時(shí),終止循環(huán)。與For循環(huán)的區(qū)別:For:對(duì)循環(huán)體執(zhí)行指定的次數(shù);While:在指定的條件為True時(shí)重復(fù)一語句序列(循環(huán)體)的執(zhí)行。7.4當(dāng)循環(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功能:當(dāng)指定的“循環(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程序運(yùn)行結(jié)果:S=3383507.5Do循環(huán)控制結(jié)構(gòu)輸入兩個(gè)正整數(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ù)錯(cuò)誤!"EndEndIfDop=mModnm=nn=p
LoopWhilep<>0Text3.Text=mEndSub補(bǔ)充:循環(huán)控制結(jié)構(gòu)循環(huán)出口語句格式:Exit{For|Do}
功能:直接從For循環(huán)或Do循環(huán)中退出當(dāng)程序運(yùn)行時(shí)遇到Exit語句時(shí),就不再執(zhí)行循環(huán)體中的任何語句而直接退出,轉(zhuǎn)到循環(huán)語句(Next、Loop)的下面繼續(xù)執(zhí)行補(bǔ)充:循環(huán)控制結(jié)構(gòu)設(shè)計(jì)一個(gè)“加法器”程序,把每次輸入的數(shù)累加。當(dāng)輸入-1時(shí)結(jié)束程序的運(yùn)行。PrivateSubForm_load()
DimxAsSingle,SumAsSingleShowSum=0DoWhileTrue
x=Val(InputBox(“請(qǐng)輸入要加入的數(shù)_(-1表示結(jié)束)","輸入數(shù)據(jù)"))
Ifx=-1Then
ExitDo
EndIfSum=Sum+xText1.Text=SumLoopMsgBox"累加運(yùn)算結(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)層次要分清,不能交叉。程序運(yùn)行結(jié)果:1 51 61 72 52 62 73 53 63 77.6多重循環(huán)編一程序,輸出下列所示的圖形。
本例可采用兩重循環(huán)來實(shí)現(xiàn)。外循環(huán)控制輸出7行,內(nèi)循環(huán)控制每行輸出要求的字符數(shù)。在進(jìn)入內(nèi)循環(huán)之前,使用PrintTab()來對(duì)起始輸出位置定位,退出內(nèi)循環(huán)后,使用Print來控制換行。7.6多重循環(huán)編一程序,輸出下列所示的圖形。PrivateSubForm_load()Show
Fori=1To7PrintTab(10-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土地權(quán)利義務(wù)協(xié)議書(2篇)
- 商業(yè)設(shè)施維修施工合同
- 衢州市月子中心租賃合同
- 體育館水管員崗位合同
- 2024版量子計(jì)算機(jī)芯片研究與產(chǎn)業(yè)化合同
- 地下停車場建設(shè)爆破合同樣本
- 短視頻制作專員聘用合同模板
- 廣州制造業(yè)廠房租賃合同模板
- 重慶市機(jī)場跑道新建合同
- 2024私人包工簡單合同范本
- 貴州省貴陽市某區(qū)2022-2023學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 三國群英傳2-所有武將屬性
- 中國五大發(fā)電集團(tuán)及其電廠
- 2023-2024學(xué)年湖北省數(shù)學(xué)三年級(jí)第一學(xué)期期末統(tǒng)考試題含答案
- 統(tǒng)編版語文二年級(jí)上冊(cè) 句子練習(xí)專項(xiàng)練習(xí)題(試題)( 無答案)
- 上海市歷年中考語文現(xiàn)代文閱讀真題40篇(2003-2021)
- 植皮的觀察與護(hù)理課件整理
- 第二版《高中物理題型筆記》上冊(cè)
- 腫瘤科醫(yī)院感染管理制度
- 產(chǎn)品拆解:飛書多維表格怎么用
- 格力2匹柜機(jī)檢測報(bào)告KFR-50LW(50530)FNhAk-B1(性能)
評(píng)論
0/150
提交評(píng)論