第7章-VisualBasic控制結(jié)構(gòu)_第1頁
第7章-VisualBasic控制結(jié)構(gòu)_第2頁
第7章-VisualBasic控制結(jié)構(gòu)_第3頁
第7章-VisualBasic控制結(jié)構(gòu)_第4頁
第7章-VisualBasic控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論