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

下載本文檔

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

文檔簡介

1第五章循環(huán)結(jié)構(gòu)、列表框和組合框5.1循環(huán)語句5.2循環(huán)嵌套5.3列表框和組合框1第五章循環(huán)結(jié)構(gòu)、列表框和組合框5.1循環(huán)語句25.1循環(huán)語句5.1.1For…Next結(jié)構(gòu)For循環(huán)變量=初值To終值[Step步長]<語句序列>[ExitFor]Next循環(huán)變量具體格式:25.1循環(huán)語句5.1.1For…Next結(jié)構(gòu)For3(1)計算初值、終值及步長表達(dá)式的值,并將初值賦給循環(huán)變量;(2)判斷循環(huán)變量的值是否“超過”終值:當(dāng)步長為正時,“超過”是指循環(huán)變量的值>終值;當(dāng)步長為負(fù)時,“超過”是指循環(huán)變量的值<終值;若“超過”時,退出循環(huán),轉(zhuǎn)到Next語句的下一語句;(3)執(zhí)行循環(huán)體中的語句;(4)執(zhí)行Next語句,循環(huán)變量增加一個步長;(5)返回第(2)步?;静襟E:3(1)計算初值、終值及步長表達(dá)式的值,并將初值賦給循環(huán)變量4循環(huán)變量≥終值?循環(huán)變量=初值執(zhí)行循環(huán)體Y循環(huán)變量=循環(huán)變量+步長N步長為負(fù)循環(huán)變量≤終值?循環(huán)變量=初值執(zhí)行循環(huán)體Y循環(huán)變量=循環(huán)變量+步長N步長為正結(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)會自動取整;(3)“步長”為數(shù)值表達(dá)式,可為正數(shù),也可為負(fù)數(shù),若值不是整數(shù),系統(tǒng)會自動取整;分步長大于0、步長小于0、步長等于0這幾種情況。步長等于1時,可省略Step子句;例如:

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

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

循環(huán)體

NextiEndSub8程序代碼如下:92、通過循環(huán)變量的變化在窗體上輸出彩色字,程序運行界面如圖所示。92、通過循環(huán)變量的變化在窗體上輸出彩色字,程序運行界面如圖10i≤2000?i=1green=Int(255*Rnd+1)blue=Int(255*Rnd+1)CurrentX=500+iCurrentY=500+iForeColor=RGB(i,green,blue)Print"歡迎來到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"歡迎來到VB世界"NextiEndSub11PrivateSubForm_Click()12編寫程序找出100~999之間的所有“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。12編寫程序找出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語句2、DoWhile…Loop語句3、Do…LoopWhile語句4、DoUntil…Loop語句5、Do…LoopUntil語句145.1.2Do…Loop結(jié)構(gòu)1、Do…Loop語句151、Do…Loop語句具體格式:Do<循環(huán)體>[ExitDo]Loop

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

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

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

Do<循環(huán)體>[ExitDo]LoopWhile<條件表達(dá)式>203、Do…LoopWhile語句具體格式:Do21首先執(zhí)行一次循環(huán)體內(nèi)的語句,執(zhí)行到Loopwhile語句時,判斷條件表達(dá)式的值是否為True。若為True,則返回到循環(huán)體的開始語句,再次執(zhí)行循環(huán)體,這樣一直到條件表達(dá)式的值為False時才退出循環(huán)。執(zhí)行循環(huán)體條件為真?NY必須存在改變條件表達(dá)式的語句21首先執(zhí)行一次循環(huán)體內(nèi)的語句,執(zhí)行到Loopwhile語22區(qū)別:DoWhile...Loop循環(huán)先測試條件是否成立;Do...LoopWhile循環(huán)先執(zhí)行一次循環(huán)體。條件為真?執(zhí)行循環(huán)體YN執(zhí)行循環(huán)體條件為真?NY22區(qū)別:DoWhile...Loop循環(huán)先測試條件是否成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語句具體格式:

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

Do<循環(huán)體>[ExitDo]LoopUntil<條件表達(dá)式>5、Do…LoopUntil語句28具體格式:Do5、Do…LoopUntil語句29首先執(zhí)行一次循環(huán)體內(nèi)的語句,執(zhí)行到LoopUntil語句時,判斷條件表達(dá)式的值是否為False。若為False,則返回到循環(huán)體的開始語句,再次執(zhí)行循環(huán)體,這樣一直到條件表達(dá)式的值為True時才退出循環(huán)。執(zhí)行循環(huán)體條件為真?YN29首先執(zhí)行一次循環(huán)體內(nèi)的語句,執(zhí)行到LoopUntil30例【5-6】:編寫程序在標(biāo)簽中顯示1~100之間既能被3整除又能被7整除的整數(shù),并計算它們的和。要求用Do…LoopWhile和Do…LoopUntil兩種語句分別編寫循環(huán)體部分。30例【5-6】:編寫程序在標(biāo)簽中顯示1~100之間既能被331編程思路:程序的循環(huán)次數(shù)是確定的,即從1到100。對于用Do…LoopWhile語句編寫循環(huán)體部分,While后的條件表達(dá)式是滿足條件執(zhí)行循環(huán),所以條件表達(dá)式是“n<=100”;對于用Do…LoopUntil語句編寫循環(huán)體部分,Until后的條件表達(dá)式是滿足條件將退出循環(huán),所以條件表達(dá)式是“n>100”。31編程思路:程序的循環(huán)次數(shù)是確定的,即從1到100。對于用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按下列公式計算: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按下列公式計算:PrivateSubForm_Cli35S=1*(1+2)*(1+2+3)*…*(1+2+3+…+n)編程求S不大于20000時最大的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定義:在一個循環(huán)體中含有另一個循環(huán)結(jié)構(gòu),這就構(gòu)成了循環(huán)的嵌套。以上幾節(jié)介紹的循環(huán)語句都可以實現(xiàn)循環(huán)嵌套。兩層的循環(huán)嵌套,稱為二重循環(huán),三層以上的循環(huán)嵌套,稱為多重循環(huán)。5.2循環(huán)嵌套37定義:在一個循環(huán)體中含有另一個循環(huán)結(jié)構(gòu),這就構(gòu)成了循環(huán)的38(1)對于For…Next的循環(huán)嵌套,在每層循環(huán)中的控制變量要使用不同的變量名。

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

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論