VB程序-循環(huán)結(jié)構(gòu)、列表框和組合框課件_第1頁(yè)
VB程序-循環(huán)結(jié)構(gòu)、列表框和組合框課件_第2頁(yè)
VB程序-循環(huán)結(jié)構(gòu)、列表框和組合框課件_第3頁(yè)
VB程序-循環(huán)結(jié)構(gòu)、列表框和組合框課件_第4頁(yè)
VB程序-循環(huán)結(jié)構(gòu)、列表框和組合框課件_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1第五章循環(huán)結(jié)構(gòu)、列表框和組合框5.1循環(huán)語(yǔ)句5.2循環(huán)嵌套5.3列表框和組合框1第五章循環(huán)結(jié)構(gòu)、列表框和組合框5.1循環(huán)語(yǔ)句25.1循環(huán)語(yǔ)句5.1.1For…Next結(jié)構(gòu)For循環(huán)變量=初值To終值[Step步長(zhǎng)]<語(yǔ)句序列>[ExitFor]Next循環(huán)變量具體格式:25.1循環(huán)語(yǔ)句5.1.1For…Next結(jié)構(gòu)For3(1)計(jì)算初值、終值及步長(zhǎng)表達(dá)式的值,并將初值賦給循環(huán)變量;(2)判斷循環(huán)變量的值是否“超過(guò)”終值:當(dāng)步長(zhǎng)為正時(shí),“超過(guò)”是指循環(huán)變量的值>終值;當(dāng)步長(zhǎng)為負(fù)時(shí),“超過(guò)”是指循環(huán)變量的值<終值;若“超過(guò)”時(shí),退出循環(huán),轉(zhuǎn)到Next語(yǔ)句的下一語(yǔ)句;(3)執(zhí)行循環(huán)體中的語(yǔ)句;(4)執(zhí)行Next語(yǔ)句,循環(huán)變量增加一個(gè)步長(zhǎng);(5)返回第(2)步?;静襟E:3(1)計(jì)算初值、終值及步長(zhǎng)表達(dá)式的值,并將初值賦給循環(huán)變量4循環(huán)變量≥終值?循環(huán)變量=初值執(zhí)行循環(huán)體Y循環(huán)變量=循環(huán)變量+步長(zhǎng)N步長(zhǎng)為負(fù)循環(huán)變量≤終值?循環(huán)變量=初值執(zhí)行循環(huán)體Y循環(huán)變量=循環(huán)變量+步長(zhǎng)N步長(zhǎng)為正結(jié)構(gòu)流程圖4循環(huán)變量≥終值?循環(huán)變量=初值執(zhí)行循環(huán)體Y循環(huán)變量=循環(huán)變5(1)“循環(huán)變量”

必須為數(shù)值型;(2)“初值”、“終值”為數(shù)值表達(dá)式,若值不是整數(shù),系統(tǒng)會(huì)自動(dòng)取整;(3)“步長(zhǎng)”為數(shù)值表達(dá)式,可為正數(shù),也可為負(fù)數(shù),若值不是整數(shù),系統(tǒng)會(huì)自動(dòng)取整;分步長(zhǎng)大于0、步長(zhǎng)小于0、步長(zhǎng)等于0這幾種情況。步長(zhǎng)等于1時(shí),可省略Step子句;例如:

Fori=10To1Step1PrintiNexti注意事項(xiàng):×5(1)“循環(huán)變量”必須為數(shù)值型;注意事項(xiàng):×6(4)循環(huán)次數(shù)的計(jì)算公式:循環(huán)次數(shù)=Int((終值-初值)/步長(zhǎng)+1),若所得為負(fù)數(shù),則取循環(huán)次數(shù)=0。(5)循環(huán)必須遵循“先檢查、后執(zhí)行”的原則。(6)ExitFor語(yǔ)句。該語(yǔ)句允許在循環(huán)體內(nèi)出現(xiàn)一次或多次。(7)Next后面的循環(huán)變量與For語(yǔ)句中的循環(huán)變量必須相同,且兩者必須成對(duì)出現(xiàn)。(8)在For循環(huán)體中改變循環(huán)控制變量的值,將會(huì)影響循環(huán)次數(shù)。例如:DimsAsInteger,iAsIntegerFori=1To10s=s+ii=i+1Nexti執(zhí)行幾次?5次6(4)循環(huán)次數(shù)的計(jì)算公式:執(zhí)行幾次?5次7例題:1、單擊窗體時(shí),在窗體上打印輸出5個(gè)“@_@”符號(hào)。7例題:1、單擊窗體時(shí),在窗體上打印輸出5個(gè)“@_@”符號(hào)。8程序代碼如下:

PrivateSubForm_Click()Fori=1To5Print"@_@"‘

循環(huán)體

NextiEndSub8程序代碼如下:92、通過(guò)循環(huán)變量的變化在窗體上輸出彩色字,程序運(yùn)行界面如圖所示。92、通過(guò)循環(huán)變量的變化在窗體上輸出彩色字,程序運(yùn)行界面如圖10i≤2000?i=1green=Int(255*Rnd+1)blue=Int(255*Rnd+1)CurrentX=500+iCurrentY=500+iForeColor=RGB(i,green,blue)Print"歡迎來(lái)到VB世界"Yi=i+200N10i≤2000?i=1green=Int(255*11PrivateSubForm_Click()DimiAsInteger,greenAsInteger,blueAsIntegerRandomizeTimerFori=1To2000Step200green=Int(255*Rnd+1)blue=Int(255*Rnd+1)CurrentX=500+iCurrentY=500+iForeColor=RGB(i,green,blue)Print"歡迎來(lái)到VB世界"NextiEndSub11PrivateSubForm_Click()12編寫(xiě)程序找出100~999之間的所有“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。12編寫(xiě)程序找出100~999之間的所有“水仙花數(shù)”。所謂“13PrivateSubForm_Click()DimxAsIntegerDimyAsIntegerDimzAsIntegerFori=100To999x=i\100y=(i-x*100)\10z=i-x*100-y*10Ifx^3+y^3+z^3=iThenText1.Text=Text1.Text&""&CStr(i)EndIfNextiEndSub13PrivateSubForm_Click()145.1.2Do…Loop結(jié)構(gòu)1、Do…Loop語(yǔ)句2、DoWhile…Loop語(yǔ)句3、Do…LoopWhile語(yǔ)句4、DoUntil…Loop語(yǔ)句5、Do…LoopUntil語(yǔ)句145.1.2Do…Loop結(jié)構(gòu)1、Do…Loop語(yǔ)句151、Do…Loop語(yǔ)句具體格式:Do<循環(huán)體>[ExitDo]Loop

其中,ExitDo語(yǔ)句是可選語(yǔ)句,它提供一種退出Do循環(huán)的方法,并且只能在Do循環(huán)中使用,可以在循環(huán)體任何位置放置任意多個(gè)ExitDo語(yǔ)句。根據(jù)所在位置,確定要退出的循環(huán)。要有退出循環(huán)的語(yǔ)句151、Do…Loop語(yǔ)句具體格式:Do其中,ExitD16DimnAsIntegern=0Don=n+1Ifn>=10ThenExitDoEndIfLoop程序運(yùn)行時(shí),循環(huán)體語(yǔ)句n=n+1被重復(fù)執(zhí)行10次后,因執(zhí)行語(yǔ)句Ifn>=10ThenExitDoEndIf時(shí),滿足條件n>=10,退出循環(huán)。16DimnAsInteger程序運(yùn)行時(shí),循環(huán)體語(yǔ)句n17具體格式:

DoWhile<條件表達(dá)式><循環(huán)體>[ExitDo]Loop2、DoWhile…Loop語(yǔ)句17具體格式:DoWhile<條件表達(dá)式>2、DoW18條件為真?執(zhí)行循環(huán)體YN首先判斷條件表達(dá)式的值是否為T(mén)rue。若為T(mén)rue,則執(zhí)行循環(huán)體中的語(yǔ)句,當(dāng)執(zhí)行到Loop語(yǔ)句時(shí),返回到DoWhile語(yǔ)句,繼續(xù)判斷條件表達(dá)式的值是否為T(mén)rue

;若為False,則退出循環(huán),執(zhí)行Loop后面的語(yǔ)句。如此反復(fù)執(zhí)行,直到條件表達(dá)式的值為False才退出循環(huán)。必須存在改變條件表達(dá)式的語(yǔ)句18條件為真?執(zhí)行循環(huán)體YN首先判斷條件表達(dá)式的值是否為T(mén)r19①Do、Loop、While都是關(guān)鍵字,DoWhile和Loop應(yīng)成對(duì)出現(xiàn);②條件表達(dá)式為關(guān)系或邏輯型,若為數(shù)值型,以0表示False,非0表示True;③DoWhile…Loop語(yǔ)句是先判斷條件后執(zhí)行循環(huán)體,有可能一次也不執(zhí)行;④遇到ExitDo語(yǔ)句時(shí),將強(qiáng)制提前結(jié)束循環(huán),執(zhí)行Loop后的下一條語(yǔ)句,該語(yǔ)句允許在循環(huán)體內(nèi)出現(xiàn)一次或多次。注意事項(xiàng):19①Do、Loop、While都是關(guān)鍵字,DoWhil203、Do…LoopWhile語(yǔ)句具體格式:

Do<循環(huán)體>[ExitDo]LoopWhile<條件表達(dá)式>203、Do…LoopWhile語(yǔ)句具體格式:Do21首先執(zhí)行一次循環(huán)體內(nèi)的語(yǔ)句,執(zhí)行到Loopwhile語(yǔ)句時(shí),判斷條件表達(dá)式的值是否為T(mén)rue。若為T(mén)rue,則返回到循環(huán)體的開(kāi)始語(yǔ)句,再次執(zhí)行循環(huán)體,這樣一直到條件表達(dá)式的值為False時(shí)才退出循環(huán)。執(zhí)行循環(huán)體條件為真?NY必須存在改變條件表達(dá)式的語(yǔ)句21首先執(zhí)行一次循環(huán)體內(nèi)的語(yǔ)句,執(zhí)行到Loopwhile語(yǔ)22區(qū)別:DoWhile...Loop循環(huán)先測(cè)試條件是否成立;Do...LoopWhile循環(huán)先執(zhí)行一次循環(huán)體。條件為真?執(zhí)行循環(huán)體YN執(zhí)行循環(huán)體條件為真?NY22區(qū)別:DoWhile...Loop循環(huán)先測(cè)試條件是否成23例如:程序段1:DimnAsIntegern=1DoWhilen<1n=n+1LoopPrintn程序段2:DimnAsIntegern=1Don=n+1LoopWhilen<1

Printn輸出結(jié)果為:1輸出結(jié)果為:223例如:程序段2:輸出結(jié)果為:1輸出結(jié)果為:2244、DoUntil…Loop語(yǔ)句具體格式:

DoUntil<條件表達(dá)><循環(huán)體>[ExitDo]Loop244、DoUntil…Loop語(yǔ)句具體格式:DoUn25首先判斷條件表達(dá)式的值是否為False。若是False,則執(zhí)行循環(huán)體,當(dāng)執(zhí)行到Loop語(yǔ)句時(shí),返回到DoUntil語(yǔ)句,繼續(xù)判斷條件表達(dá)式的值是否為False;若是True,則退出循環(huán),執(zhí)行Loop后面的語(yǔ)句。如此反復(fù)執(zhí)行,直到條件表達(dá)式的值為T(mén)rue才退出循環(huán)。條件為真?執(zhí)行循環(huán)體NY25首先判斷條件表達(dá)式的值是否為False。若是False,26例如:求s=1+2+3+…+100的值。方法1:用DoWhile…Loop語(yǔ)句實(shí)現(xiàn)的:DimnAsInteger,sAsInteger

n=1

s=0

DoWhilen<100

s=s+n

n=n+1

Loop

Printsn<=10026例如:求s=1+2+3+…+100的值。方法1:用Do27方法2:用DoUntil…Loop語(yǔ)句實(shí)現(xiàn)的:DimnAsInteger,sAsIntegern=1s=0DoUntiln>=100s=s+nn=n+1LoopPrintsn>10027方法2:用DoUntil…Loop語(yǔ)句實(shí)現(xiàn)的:Dim28具體格式:

Do<循環(huán)體>[ExitDo]LoopUntil<條件表達(dá)式>5、Do…LoopUntil語(yǔ)句28具體格式:Do5、Do…LoopUntil語(yǔ)句29首先執(zhí)行一次循環(huán)體內(nèi)的語(yǔ)句,執(zhí)行到LoopUntil語(yǔ)句時(shí),判斷條件表達(dá)式的值是否為False。若為False,則返回到循環(huán)體的開(kāi)始語(yǔ)句,再次執(zhí)行循環(huán)體,這樣一直到條件表達(dá)式的值為T(mén)rue時(shí)才退出循環(huán)。執(zhí)行循環(huán)體條件為真?YN29首先執(zhí)行一次循環(huán)體內(nèi)的語(yǔ)句,執(zhí)行到LoopUntil30例【5-6】:編寫(xiě)程序在標(biāo)簽中顯示1~100之間既能被3整除又能被7整除的整數(shù),并計(jì)算它們的和。要求用Do…LoopWhile和Do…LoopUntil兩種語(yǔ)句分別編寫(xiě)循環(huán)體部分。30例【5-6】:編寫(xiě)程序在標(biāo)簽中顯示1~100之間既能被331編程思路:程序的循環(huán)次數(shù)是確定的,即從1到100。對(duì)于用Do…LoopWhile語(yǔ)句編寫(xiě)循環(huán)體部分,While后的條件表達(dá)式是滿足條件執(zhí)行循環(huán),所以條件表達(dá)式是“n<=100”;對(duì)于用Do…LoopUntil語(yǔ)句編寫(xiě)循環(huán)體部分,Until后的條件表達(dá)式是滿足條件將退出循環(huán),所以條件表達(dá)式是“n>100”。31編程思路:程序的循環(huán)次數(shù)是確定的,即從1到100。對(duì)于用32PrivateSubComputeCmd_Click()DimnAsInteger,sAsIntegerDimtAsStringn=1:s=0:t=""DoIfnMod3=0AndnMod7=0Thent=t&Str(n)t=t&","s=s+nEndIfn=n+1LoopWhilen<=100NumLabel.Caption=tSumLabel.Caption=sEndSub32PrivateSubComputeCmd_Clic33PrivateSubComputeCmd_Click()DimnAsInteger,sAsIntegerDimtAsStringn=1:s=0:t=""DoIfnMod3=0AndnMod7=0Thent=t&Str(n)t=t&","s=s+nEndIfn=n+1LoopUntiln>100NumLabel.Caption=tSumLabel.Caption=sEndSub33PrivateSubComputeCmd_Clic34按下列公式計(jì)算:e=1+1/1!+1/2!+1/3!+…+1/n!+…使1/n!小于0.000001PrivateSubForm_Click()DimeAsDoubleDimiAsIntegerDimfactAsDoubleDimresultAsLonge=0:i=1:fact=1:result=1Dofact=1/resulte=e+factresult=result*ii=i+1LoopWhilefact>0.000001Label1.Caption=Val(e)EndSub34按下列公式計(jì)算:PrivateSubForm_Cli35S=1*(1+2)*(1+2+3)*…*(1+2+3+…+n)編程求S不大于20000時(shí)最大的n值35S=1*(1+2)*(1+2+3)*…*(1+2+3+…36PrivateSubForm_Click()DimsumAsLongDimsAsLongDimnAsIntegersum=0:s=1:n=0Don=n+1sum=sum+ns=s*sumLoopUntils>20000Label3.Caption=Val(n-1)EndSub36PrivateSubForm_Click()37定義:在一個(gè)循環(huán)體中含有另一個(gè)循環(huán)結(jié)構(gòu),這就構(gòu)成了循環(huán)的嵌套。以上幾節(jié)介紹的循環(huán)語(yǔ)句都可以實(shí)現(xiàn)循環(huán)嵌套。兩層的循環(huán)嵌套,稱為二重循環(huán),三層以上的循環(huán)嵌套,稱為多重循環(huán)。5.2循環(huán)嵌套37定義:在一個(gè)循環(huán)體中含有另一個(gè)循環(huán)結(jié)構(gòu),這就構(gòu)成了循環(huán)的38(1)對(duì)于For…Next的循環(huán)嵌套,在每層循環(huán)中的控制變量要使用不同的變量名。

(2)內(nèi)循環(huán)結(jié)構(gòu)語(yǔ)句必須完整地嵌在外循環(huán)體中,不可交叉。Do…Loop或For…Next語(yǔ)句需成對(duì)使用,VisualBasic會(huì)給每個(gè)循環(huán)結(jié)構(gòu)結(jié)束語(yǔ)句(Loop或Next)匹配最近的循環(huán)結(jié)構(gòu)開(kāi)始語(yǔ)句(Do或For)。

(3)多重循環(huán)執(zhí)行時(shí),外循環(huán)每重復(fù)執(zhí)行一次,內(nèi)循環(huán)則要完整地執(zhí)行其應(yīng)重復(fù)的次數(shù)。注意事項(xiàng):38(1)對(duì)于For…Next的循環(huán)嵌套,在每層循環(huán)中的39例【5-8】:打印如圖5-15所示的上三角的九九乘法表。39例【5-8】:打印如圖5-15所示的上三角的九九乘法表。40程序代碼如下:PrivateSubForm_Click()DimsAsStringPrintTab(45);"九九乘法表"PrintTab(45);"=========="Fori=1To9Forj=1Tois=i&"*"&j&"="&i*jPrints;Spc(5);NextjPrintNextiEndSub40程序代碼如下:41在窗體上打印星號(hào)“*”矩形41在窗體上打印星號(hào)“*”矩形42PrivateSubCommand1_Click()DimnAsIntegern=Val(Text1.Text)Fori=1TonForj=1TonPrint"*";NextjPrintNextiEndSub42PrivateSubCommand1_Click()435.3列表框與組合框1.常用屬性(1)Columns屬性:用于設(shè)置列表項(xiàng)排列的列數(shù)。取值為0,按單列顯示,垂直滾動(dòng)條;取值為1,按單列顯示,水平滾動(dòng)條;取值大于1,多列顯示。(2)List屬性:是一個(gè)字符型數(shù)組,用于存放列表框的選項(xiàng)內(nèi)容,其元素與列表的選項(xiàng)相對(duì)應(yīng),下標(biāo)從0開(kāi)始。(3)ListCount屬性:列表框中條目的個(gè)數(shù),ListCount-1表示最后一項(xiàng)的序號(hào)。只能在程序中引用。5.3.1列表框435.3列表框與組合框1.常用屬性5.3.1列表框44(4)ListIndex屬性:表示運(yùn)行時(shí)被選定的選項(xiàng)的序號(hào)(下標(biāo))。只能在程序中引用。(5)Selected屬性:一個(gè)邏輯型數(shù)組,表示運(yùn)行時(shí)對(duì)應(yīng)選項(xiàng)被選中或未被選中。只能在程序中引用。(6)Sorted屬性:列表框中的條目是否按字母順序排列顯示。只能在屬性窗口設(shè)置。(7)Text屬性:返回當(dāng)前被選中項(xiàng)目的文本內(nèi)容。只能在程序中引用。(8)MultiSelect屬性:設(shè)置能否多項(xiàng)選項(xiàng)以及如何進(jìn)行選擇。只能在屬性窗口設(shè)置。(9)Style屬性:設(shè)置控件外觀。44(4)ListIndex屬性:表示運(yùn)行時(shí)被選定的選項(xiàng)的452.常用方法(1)AddItem方法格式:列表框名.AddItem<字符串>[,下標(biāo)]說(shuō)明:用于

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論