vb教程-分支結(jié)構(gòu)_第1頁
vb教程-分支結(jié)構(gòu)_第2頁
vb教程-分支結(jié)構(gòu)_第3頁
vb教程-分支結(jié)構(gòu)_第4頁
vb教程-分支結(jié)構(gòu)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5章選擇結(jié)構(gòu)程序設(shè)計(jì)本章要點(diǎn):條件語句

?單行結(jié)構(gòu)條件語句If...Then...Else

?塊結(jié)構(gòu)條件語句If...Then...EndIf

?多分支選擇語句SelectCase...EndSelect特點(diǎn):依據(jù)條件是否成立,確定程序的執(zhí)行分支15.1單行結(jié)構(gòu)條件語句1.格式If<條件>Then[<語句組1>][Else<語句組2>]2.功能假如<條件>成立,則執(zhí)行<語句組1>否則執(zhí)行<語句組2>3.說明(1)<條件>:關(guān)系表達(dá)式、布爾表達(dá)式數(shù)值表達(dá)式(0為False,非0為True)字符串表達(dá)式("0"為False,非"0"為True)(2)<語句組1>、<語句組2>:可以有多條語句,各語句之間用冒號(hào)隔開。(3)可以沒有Else部分,這時(shí)必需有<語句組1>。2例:IfN>0ThenA=A+B:B=B+AElseA=A-B:B=B-A例:IfX<>"aaa"ThenPrintX【例5-1】設(shè)界面如下圖所示,用文本框輸入x的值,單擊“計(jì)算Y”按鈕時(shí),依據(jù)以下公式計(jì)算y的值。|x|x≤0lnxx>0y=PrivateSubCommand1_Click()X=Val(Text1.Text)

IfX<=0ThenY=Abs(X)ElseY=Log(X)Label3.Caption=YEndSubCommand1Text1Label334.留意(1)應(yīng)作為一條語句書寫(2)無論條件是否成立,都具有共同出口例:IfX>=0ThenX=1+XElseX=5-XY=1-XPrint"Y=";Y若X=2則打印Y=-2若X=-2則打印Y=-6共同出口X=Val(Text1.Text)Y=Abs(X)IfX>0ThenY=Log(X)Label3.Caption=YX=Val(Text1.Text)Y=Log(X)IfX<=0ThenY=Abs(X)Label3.Caption=Y例:改寫例5-1,比較:45.嵌套IF...THEN...IF...THEN...ELSE...ELSE…【例5-2】平面直角坐標(biāo)系中,不同的象限內(nèi),點(diǎn)的坐標(biāo)的符號(hào)有以下4種狀況:XYABCD在A象限X>0,Y>0BX<0,Y>0CX<0,Y<0DX>0,Y<0隨意輸入一對(duì)坐標(biāo)值,找出它所在的象限。5PrivateSubCommand1_Click()X=Val(Text1.Text):Y=Val(Text2.Text)IfX=0OrY=0ThenPrint"不在任何象限內(nèi)":_ExitSubIfX>0Then

IfY>0ThenPrint"INA"Else_Print"IND"

Else

IfY>0ThenPrint"INB"_ElsePrint"INC"EndSub65.2塊結(jié)構(gòu)條件語句1.格式If<條件1>Then[<語句組1>][ElseIf<條件2>Then[<語句組2>]]……[ElseIf<條件N>Then[<語句組N>]][Else[<其他語句組>]]EndIf功能:……If<條件1>Then[語句組1]Else[語句組2]EndIfElse子句ElseIf子句If語句EndIf語句留意:格式書寫、嵌套7【例5-3】輸入華氏溫度F,利用公式C=5/9*(F-32)轉(zhuǎn)換成攝氏溫度C,依據(jù)轉(zhuǎn)換結(jié)果C的不同值,按以下要求給出相應(yīng)的提示。C>40時(shí),打印"HOT"30<C≤40時(shí),打印"WARM"20<C≤30時(shí),打印"ROOMTEMPERATURE"10<C≤20時(shí),打印"COOL"0<C≤10時(shí),打印"COLD"C≤0時(shí),打印"FREEZING"Text2Text18PrivateSubCommand1_Click()C=5/9*(Val(Text1.Text)-32)Text2.Text=Format(C,"0.00")IfC>40ThenLabel2.Caption="HOT"ElseIfC>30ThenLabel2.Caption="WARM"ElseIfC>20ThenLabel2.Caption="ROOMTEMPERATURE"ElseIfC>10ThenLabel2.Caption="COOL"ElseIfC>0ThenLabel2.Caption="COLD"ElseLabel2.Caption="FREEZING"EndIfEndSub95.3多分支選擇語句1.格式SelectCase<測試表達(dá)式>Case<表達(dá)式表1>[<語句組1>][Case<表達(dá)式表2>[<語句組2>]]…[CaseElse[<語句組n>]]EndSelect2.功能:依據(jù)測試表達(dá)式的值,按依次匹配Case后的表達(dá)式,假如匹配成功,則執(zhí)行該Case下的語句塊,然后轉(zhuǎn)到EndSelect語句之后接著執(zhí)行。103.說明<測試表達(dá)式>:數(shù)值或字符表達(dá)式Case表達(dá)式表:表中的表項(xiàng)為如下形式:(1)表達(dá)式1[,表達(dá)式2]...如:Case1,3,5(2)表達(dá)式1TO表達(dá)式2如:Case10TO30Case"A"TO"Z"(3)Is<關(guān)系運(yùn)算符><表達(dá)式>如:CaseIs>=10CaseIs=0與Case0相同留意:測試表達(dá)式的類型應(yīng)與Case后表達(dá)式類型一樣,且三種形式可以混用,如:CaseIs<-5,0,5To10011Y=ex+e-xx<01.25x=0lgxx>0X=Val(Text1.Text)SelectCaseXCaseIs<0Y=Exp(X)+Exp(-X)Case0Y=1.25CaseIs>0Y=Log(X)/Log(10)EndSelectPrint"Y=";YX=Val(Text1.Text)SelectCaseXCaseX<0Y=Exp(X)+Exp(-X)CaseX=0Y=1.25CaseX>0Y=Log(X)/Log(10)EndSelectPrint"Y=";Y【例5-4】求函數(shù)Y的值125.4應(yīng)用舉例【例5-5】設(shè)計(jì)一個(gè)口令檢測程序,界面如下圖,當(dāng)用戶輸入的口令正確時(shí),顯示“恭喜!,您已成功進(jìn)入本系統(tǒng)”,否則,顯示,“口令錯(cuò)!,請(qǐng)重新輸入”。假如連續(xù)兩次輸入了錯(cuò)誤口令,在第三次輸入完口令后則顯示一個(gè)消息框,提示“對(duì)不起,您不能運(yùn)用本系統(tǒng)”,然后退出整個(gè)應(yīng)用程序。Text1Label213PrivateSubText1_KeyUp(KeyCodeAsInteger,_ShiftAsInteger)StaticIAsInteger'保存輸入錯(cuò)誤口令的次數(shù)IfKeyCode=13Then'假如按下的鍵為回車鍵IfUCase(Text1.Text)="HELLO"ThenLabel2.Caption="恭喜!,您已成功進(jìn)入本系統(tǒng)"ElseIfI=0OrI=1ThenI=I+1Label2.Caption="口令錯(cuò)!,請(qǐng)重新輸入"Text1.SelStart=0Text1.SelLength=Len(Text1.Text)ElseMsgBox"對(duì)不起,您不能運(yùn)用本系統(tǒng)":EndEndIfEndIfEndSub14【例5-6】求一元二次方程ax2+bx+c=0的解。分析:(1)假如a=0,則不是二次方程,此時(shí)假如b=0,則提示重新輸入系數(shù);假如b0,則:x=-c/b(2)假如a0,且b2-4ac=0,則有兩個(gè)相等的實(shí)根(3)假如a0,且b2-4ac>0,則有兩個(gè)不等的實(shí)根(4)假如a0,且b2-4ac<0,則有兩個(gè)共軛復(fù)根Text1Text2Text3Command115PrivateSubCommand1_Click()A=Val(Text1.Text):B=Val(Text2.Text)C=Val(Text3.Text):ClsCurrentX=600:CurrentY=1100IfA=0ThenIfB=0ThenMsgBox"系數(shù)為零,請(qǐng)重新輸入"

Text1.SetFocusText1.SelStart=0Text1.SelLength=Len(Text1.Text)ElseX=-C/BPrint"X=";Format(X,"0.000")EndIfExitSubEndIf16

Delta=B^2-4*A*CSelectCaseDeltaCase0Print"X1=X2=";Format(-B/(2*A),"0.000")CaseIs>0X1=(-B+Sqr(Delta))/(2*A)X2=(-B-Sqr(Delta))/(2*A)Print"X1=";Format(X1,"0.000")CurrentX=600:CurrentY=1300Print"X2=";Format(X2,"0.000")CaseIs<0A1=-B/(2*A)A2=Sqr(Abs(Delta))/(2*A)17Print"X1=";Format(A1,"0.000");"+";_Format(A2,"0.000");"i"CurrentX=600CurrentY=1300Print"X2=";Format(A1,"0.000");"-";_Format(A2,"0.000");"i"EndSelectEndSub18【例5-6】設(shè)計(jì)一個(gè)四則運(yùn)算的自我練習(xí)應(yīng)用程序,界面如下圖所示。

Text1Text4Text3Text2Label4Label219要求:(1)執(zhí)行時(shí),當(dāng)在Text1中輸入一種運(yùn)算符后,在標(biāo)簽Label2中立刻出現(xiàn)該運(yùn)算符號(hào)。(2)單擊“出題”按鈕可以產(chǎn)生兩個(gè)[0,1000]之間的隨機(jī)整數(shù),這時(shí)由Text2、Label2和Text3組成一個(gè)表達(dá)式。(3)可以通過單擊“計(jì)算”按鈕計(jì)算所生成的表達(dá)式的值。(4)也可以由用戶在文本框Text4中輸入運(yùn)算結(jié)果通過單擊“推斷”按鈕可以推斷輸入的運(yùn)算結(jié)果是否正確,然后在Label4上顯示“正確”或“錯(cuò)誤”。(5)單擊“退出”按鈕結(jié)束運(yùn)行。20(1)在Text1中輸入加、減、乘、除符號(hào)后,在Label2中立刻出現(xiàn)相應(yīng)的運(yùn)算符號(hào)。PrivateSubText1_Change()Label2.Caption=Text1.TextEndSub(2)單擊“出題”按鈕Command1,生成兩個(gè)[0,1000]之間的隨機(jī)整數(shù)。PrivateSubCommand1_Click()RandomizeText2.Text=Int(Rnd*1001)Text3.Text=Int(Rnd*1001)Text4.Text=""EndSub21(3)單擊“計(jì)算”按鈕Command2得出Text4的值。PrivateSubCommand2_Click()IfLabel2.Caption="+"ThenText4.Text=Val(Text2.Text)+Val(Text3.Text)ElseIfLabel2.Caption="-"ThenText4.Text=Val(Text2.Text)-Val(Text3.Text)ElseIfLabel2.Caption="*"ThenText4.Text=Val(Text2.Text)*Val(Text3.Text)ElseIfLabel2.Caption="/"ThenText4.Text=Val(Text2.Text)/Val(Text3.Text)Elsea=MsgBox("運(yùn)算類型錯(cuò),請(qǐng)重輸",,"警告")

Text1.SetFocus:Text1.SelStart=0Text1.SelLength=Len(Text1.Text)EndIfEndSub22(4)Text4的內(nèi)容也可以由用戶輸入,通過單擊“推斷”按鈕Command3推斷輸入結(jié)果是否正確。PrivateSubCommand3_Click()SelectCaseLabel2.CaptionCase"+"IfText4.Text=Val(Text3.Text)+Val(Text2.Text)ThenLabel4.Caption="正確"ElseLabel4.Caption="錯(cuò)誤"EndIf23Case"-“IfText4.Text=Val(Text2.Text)-Val(Text3.Text)ThenLabel4.Caption="正確"

ElseLabel4.Caption="錯(cuò)誤"

EndIfCase"*"IfText4.Text=Val(Text2.Text)*Val(Text3.Text)ThenLabel4.Caption="正確"

ElseLabel4.Caption="錯(cuò)誤"

EndIf24Case"/"IfText4.Text=Val(Text2.Text)/Val

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論