中山大學(xué)VB課件第5章控制結(jié)構(gòu)程序設(shè)計(jì).ppt
《中山大學(xué)VB課件第5章控制結(jié)構(gòu)程序設(shè)計(jì).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《中山大學(xué)VB課件第5章控制結(jié)構(gòu)程序設(shè)計(jì).ppt(46頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第5章選擇結(jié)構(gòu)程序設(shè)計(jì),VB中提供了三種用來(lái)實(shí)現(xiàn)選擇結(jié)構(gòu)的流程控制語(yǔ)句,即:塊結(jié)構(gòu)條件語(yǔ)句If…Then…EndIf多分支條件語(yǔ)句ElseIf多分支選擇語(yǔ)句SelectCase…EndSelect,5.1塊if語(yǔ)句塊結(jié)構(gòu)if語(yǔ)句語(yǔ)法格式如下:,塊結(jié)構(gòu)if語(yǔ)句語(yǔ)法格式如下:IfThen[][Else[]]EndIf其中為必選項(xiàng),它是一個(gè)邏輯值的表達(dá)式,其返回結(jié)果必須是True或False。對(duì)于數(shù)值表達(dá)式,VB將0作為False,非0作為T(mén)rue來(lái)處理;對(duì)于字符串表達(dá)式,VB只允許出現(xiàn)包含數(shù)字的字符串,當(dāng)字符串中的數(shù)字值為0時(shí),則認(rèn)為是False,否則認(rèn)為是True。,說(shuō)明:說(shuō)明::1.整個(gè)塊結(jié)構(gòu)必須以If開(kāi)始,以EndIf結(jié)束。2.塊結(jié)構(gòu)If語(yǔ)句中Then后面的語(yǔ)句不能與其寫(xiě)在同一行上,否則,必須加上分隔符。3.塊結(jié)構(gòu)中的是可以省略的。4.在塊結(jié)構(gòu)中,If后面顯式的給出了判斷條件,Else后面雖然沒(méi)有顯式的給出一個(gè)條件,但相當(dāng)于存在一個(gè)與If部分相反的隱含條件。,塊結(jié)構(gòu)If語(yǔ)句的簡(jiǎn)單形式:IfThen[][Else[]]如:IfX>0ThenPrintXPrint-XIfX>0ThenPrintX簡(jiǎn)單的塊結(jié)構(gòu)If語(yǔ)句解決是“二選一”的兩分支選擇問(wèn)題。在實(shí)際應(yīng)用中,經(jīng)常會(huì)遇到“多分支”選擇的程序,即從多種情況中選擇執(zhí)行其中一種情況,這時(shí),就要使用塊if語(yǔ)句的嵌套。,5.2塊if語(yǔ)句的嵌套塊結(jié)構(gòu)If語(yǔ)句可以嵌套,即在上述結(jié)構(gòu)中的和部分仍然可以包含另外一個(gè)塊結(jié)構(gòu)If語(yǔ)句。例如,下面就是一個(gè)簡(jiǎn)單的塊結(jié)構(gòu)嵌套的語(yǔ)句。IfThenIfThenElseEndIfElseEndIf,這個(gè)語(yǔ)句就是在塊結(jié)構(gòu)的If部分嵌套了另外一個(gè)塊結(jié)構(gòu)。執(zhí)行該語(yǔ)句時(shí),首先判斷是否成立,如果成立,則再判斷是否成立,如果成立,則執(zhí)行,否則執(zhí)行;如果不成立,則執(zhí)行。當(dāng)然,在Else部分也可以嵌套另外的塊If結(jié)構(gòu),If和Else部分也可以同時(shí)嵌套。,說(shuō)明:1.如果存在嵌套時(shí),語(yǔ)句中的每一個(gè)Else必須和一個(gè)If相對(duì)應(yīng),應(yīng)避免產(chǎn)生混亂。在書(shū)寫(xiě)時(shí),可以將同一層的If子句和Else子句左對(duì)齊,內(nèi)層的各語(yǔ)句塊相對(duì)于外層向右縮進(jìn)若干空格,以使程序結(jié)構(gòu)更加清楚,便于閱讀和查錯(cuò)。2.每一個(gè)塊結(jié)構(gòu)都必須以If開(kāi)始,以EndIf結(jié)束。3.利用塊If語(yǔ)句的嵌套可以解決“多分支”選擇的問(wèn)題。,5.3ElseIf語(yǔ)句格式:If條件1then語(yǔ)句塊1ElseIf條件2then語(yǔ)句塊2……[Else語(yǔ)句塊n+1]EndIf,格式說(shuō)明:1.可以放置任意多個(gè)ElseIf子句。2.關(guān)鍵字ElseIf中間沒(méi)有空格,不能寫(xiě)成ElseIf。功能:依次判斷條件,如某一條件成立,則執(zhí)行其下面的語(yǔ)句塊;如果所有條件均不成立,則執(zhí)行Else后面的語(yǔ)句。在相應(yīng)語(yǔ)句塊執(zhí)行完后,會(huì)跳過(guò)EndIf,執(zhí)行其后面的語(yǔ)句。,功能說(shuō)明:1.不管有幾個(gè)ElseIf子句,程序執(zhí)行完一個(gè)語(yǔ)句塊后,其余ElseIf子句不再執(zhí)行。2.當(dāng)多個(gè)ElseIf子句中的條件都成立時(shí),只執(zhí)行第一個(gè)條件成立的子句中的語(yǔ)句塊。因此,在使用ElseIf語(yǔ)句時(shí),要特別注意各判斷條件的前后次序。ElseIf語(yǔ)句可以用來(lái)處理當(dāng)條件不成立時(shí)又內(nèi)嵌塊If語(yǔ)句的情形,以使程序簡(jiǎn)化易寫(xiě)。,,格式:SelectCase表達(dá)式[Case取值1[語(yǔ)句塊1]][Case取值2[語(yǔ)句塊2]]……[Case取值n[語(yǔ)句塊n]][CaseElse[語(yǔ)句塊n+1]]EndSelect,格式說(shuō)明:1.“測(cè)試表達(dá)式”可以是數(shù)值表達(dá)式或字符串表達(dá)式。2.“表達(dá)式列表”與“測(cè)試表達(dá)式”的類(lèi)型必需相同。3.“表達(dá)式列表”由表5-1所示形式的表達(dá)式組成。4.當(dāng)使用多個(gè)表達(dá)式組成列表時(shí),表達(dá)式與表達(dá)式之間要用英文逗號(hào)“,”隔開(kāi)。,形式示例說(shuō)明(1)表達(dá)式Case100+a數(shù)值或字符串表達(dá)式(2)一組用逗號(hào)分隔的枚舉值Case2,4,6,8測(cè)試表達(dá)式的值等于2,4,6,8之一(3)表達(dá)式1To表達(dá)式2Case1To101≤測(cè)試表達(dá)式≤10(4)Is關(guān)系運(yùn)算符表達(dá)式CaseIs>20測(cè)試表達(dá)式>20,功能:根據(jù)“測(cè)試表達(dá)式”的值,選擇第一個(gè)符合條件的語(yǔ)句塊執(zhí)行。SelectCase語(yǔ)句的執(zhí)行過(guò)程是:先求“測(cè)試表達(dá)式”的值,然后順序測(cè)試該值符合哪一個(gè)Case子句中情況,如果找到了,則執(zhí)行該Case子句下面的語(yǔ)句塊,然后執(zhí)行EndSelect后面的語(yǔ)句;如果沒(méi)找到,則執(zhí)行CaseElse后面的語(yǔ)句塊,然后執(zhí)行EndSelect后面的語(yǔ)句。,,,(三)循環(huán)程序結(jié)構(gòu),在編程時(shí),常常需重復(fù)執(zhí)行一組語(yǔ)句,這可通過(guò)循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。VB中提供了兩種類(lèi)型的循環(huán)語(yǔ)句:一種是計(jì)數(shù)循環(huán)語(yǔ)句;另一種是條件循環(huán)語(yǔ)句。,格式:For循環(huán)變量=初值To終值[Step步長(zhǎng)]Next[循環(huán)變量],1、For…Next語(yǔ)句(計(jì)數(shù)循環(huán)),說(shuō)明:☆循環(huán)變量必須為數(shù)值型。☆循環(huán)的初值、終值和步長(zhǎng)都是數(shù)值表達(dá)式。其中,增量參數(shù)可正可負(fù)。如果沒(méi)有設(shè)置step,則增量默認(rèn)為1。☆Next是循環(huán)終端語(yǔ)句,在Next后面的循環(huán)變量與For中的循環(huán)變量必須相同。當(dāng)循環(huán)是單層循環(huán)時(shí),Next后面的循環(huán)變量可以不寫(xiě)。,例:求1+2+3……+100。,sum=0Fori=1to100sum=sum+iNext,例:找出所有小于50的正整數(shù)中等于7的倍數(shù)的數(shù)。,Fori=7to50step7printiNext,練習(xí):1、編寫(xiě)程序求S=20!的值2、編寫(xiě)程序求S=12+22+32+…+n2(其中n的值由用戶(hù)輸入),作業(yè):要求用For…Next語(yǔ)句編寫(xiě)以下程序:1、計(jì)算Y=A!+B!+C!的值,其中A=6,B=8,C=5。2、求半徑從1到n的n個(gè)圓面積之和(其中n的值由用戶(hù)輸入)。,練習(xí):(1)通過(guò)鍵盤(pán)輸入10個(gè)學(xué)生的考試成績(jī),計(jì)算并顯示其平均成績(jī)。(2)從鍵盤(pán)輸入10個(gè)整型數(shù)據(jù),將其中的負(fù)數(shù)以及負(fù)數(shù)的和顯示出來(lái)。,2、條件循環(huán)語(yǔ)句(Do…Loop)(1)當(dāng)型循環(huán)(DoWhile…Loop、Do…LoopWhile)(2)直到型循環(huán)(DoUntil…Loop、Do…LoopUntil),格式:DoWhile〈條件表達(dá)式〉〈循環(huán)體〉[ExitDo]〈循環(huán)體〉Loop,說(shuō)明:③循環(huán)體中要有控制循環(huán)的語(yǔ)句,以避免出現(xiàn)死循環(huán)。④由于該循環(huán)的特點(diǎn)是先判斷條件,然后再?zèng)Q定是否要執(zhí)行循環(huán)體里的語(yǔ)句。所以,這種循環(huán)可以一次也不執(zhí)行循環(huán)體。⑤ExitDo表示當(dāng)遇到該語(yǔ)句時(shí),強(qiáng)制退出循環(huán),執(zhí)行Loop后的下一條語(yǔ)句。,T,例:S=1+2+3+…+n,編寫(xiě)程序求使得S>1000的最小n值。,DimnAsInteger,sAsIntegers=0n=1DoWhiles1000的最小n值是:""是一個(gè)素?cái)?shù)"ElsePrintn;"不是素?cái)?shù)"EndIfEndSub,【例4】假設(shè)我國(guó)現(xiàn)有人口12億,若年增長(zhǎng)率為1.5%,試計(jì)算多少年后我國(guó)人口增加到或超過(guò)20億。人口計(jì)算公式為:p=y(1+r)ny為人口初值,r為年增長(zhǎng)率,n為年數(shù)。,PrivateSubForm_click()Dimp!,r!,I%p=12r=0.015I=0Whilep=90ThenText2.Text="優(yōu)秀",ElseIfscore>=80ThenText2.Text="良好"ElseIfscore>=70ThenText2.Text="中"ElseIfscore>=60ThenText2.Text="及格"Else,Text2.Text="不及格"EndIfEndSub“退出”按鈕代碼PrivateSubCommand2_Click()EndEndSub,把例中“鑒定”按鈕的代碼用SelectCase語(yǔ)句改寫(xiě)。PrivateSubCommand1_Click()Dimscore!score=Text1.TextSelectCasescoreCaseIs>=90,Text2.Text="優(yōu)秀"CaseIs>=80Text2.Text="良好"CaseIs>=70Text2.Text="中"CaseIs>=60,Text2.Text="及格"CaseElseText2.Text="不及格"EndSelectEndSub,【例7】任意輸入三個(gè)數(shù),找出其中的最大值。,PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSingle,maxAsSinglea=Text1.Textb=Text2.Textc=Text3.Textmax=aIfb>maxThenmax=b,,Ifc>maxThenmax=cText4.Text=maxEndSub,例8,,打印99表,,雙重循環(huán)即可,,假設(shè)被乘數(shù)為X,乘數(shù)為y,同時(shí)X控制行;Y控制列X=1時(shí)Y=1------1X=2Y=1------2X=3Y=1------3X=9Y=1------9,PrivateSubForm_Click()PrintTab(20);"九九乘法表"Forx=1To9PrintFory=1Toxs=x*yPrintStr(s);NextyNextxEndSub,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 中山大學(xué) VB 課件 控制 結(jié)構(gòu) 程序設(shè)計(jì)
鏈接地址:http://www.820124.com/p-11502505.html