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