




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
循環(huán)結(jié)構(gòu)在VisualBasic程序的三種結(jié)構(gòu)中,循環(huán)結(jié)構(gòu)是一種重要結(jié)構(gòu)。循環(huán)的本質(zhì):不斷地重復(fù)某種動(dòng)作。對(duì)計(jì)算機(jī)程序而言,循環(huán)必須具備兩個(gè)重要因素:1.在一定的條件下,重復(fù)執(zhí)行一組語句2.必然出現(xiàn)不滿足條件的情況,使循環(huán)終止思考題編寫程序?qū)崿F(xiàn)計(jì)算:0+1+2+3+4+…+n的值前后兩項(xiàng)之差都為1,是一個(gè)等差數(shù)列Sum=0Sum=sum+1Sum=sum+2Sum=sum+3…Sum=sum+nSum=sum+ii=i+1i是從1到n遞增1的數(shù)列重復(fù)執(zhí)行n次一、循環(huán)程序設(shè)計(jì)結(jié)構(gòu)
VB中提供了兩種類型的循環(huán)語句:一種是計(jì)數(shù)循環(huán)語句;另一種是條件循環(huán)語句。VisualBasic支持的循環(huán)結(jié)構(gòu)有:☆For...Next結(jié)構(gòu)☆Do…Loop結(jié)構(gòu)1、For…Next循環(huán)結(jié)構(gòu)循環(huán)體ExitFor循環(huán)體循環(huán)變量增加步長循環(huán)變量獲得初值FT循環(huán)變量在終值內(nèi)For循環(huán)的執(zhí)行過程語法格式:For循環(huán)變量=初值To終值[Step步長]<循環(huán)體>[ExitFor]<循環(huán)體>Next[循環(huán)變量]記住了編程計(jì)算:S=1+2+3+…+100DimS%,i%S=0Fori=1to100S=S+iNextiPrinti,S
思考:
求100以內(nèi)的奇數(shù)和、偶數(shù)和怎樣改程序?求10!怎樣改程序?
注意執(zhí)行過程?。⊙h(huán)結(jié)束后循環(huán)變量i的值為多少說明①格式中的參數(shù)說明:
循環(huán)的初值、終值和步長都是數(shù)值表達(dá)式,其值不一定是
整數(shù),可以是實(shí)數(shù)。增量參數(shù)可正可負(fù)。如果增量為正,則初值必須小于等于
終值,否則不能執(zhí)行循環(huán)體內(nèi)的語句;如果增量為負(fù),則
初值必須大于等于終值。如果沒有設(shè)置step,則增量默認(rèn)
為1。當(dāng)初值等于終值時(shí),不管步長是正數(shù)還是負(fù)數(shù),都執(zhí)行一次循環(huán)體。②循環(huán)次數(shù)由初值、終值和步長決定,計(jì)算公式為:
循環(huán)次數(shù)=INT((終值–初值)/步長+1)
③For語句和Next語句必須成對(duì)出現(xiàn),不能單獨(dú)使用。
Next是循環(huán)終端語句,在Next后面的循環(huán)變量與For中的循
環(huán)變量必須相同。當(dāng)循環(huán)是單層循環(huán)時(shí),Next后面的循環(huán)變量
可以不寫。④如果要在循環(huán)變量到達(dá)終值前退出循環(huán),可用ExitFor語句來實(shí)現(xiàn)。該語句可以在For循環(huán)中出現(xiàn)多次,且位置不限。如:前例中加入條件“當(dāng)sum超過400時(shí)跳出循環(huán)”。Fori=1to500step100S=S+I
Ifs>400thenExitforNextiPrinti,S
2、Do…Loop循環(huán)結(jié)構(gòu)
Do…Loop循環(huán)用于事先不知道循環(huán)次數(shù)的循環(huán)結(jié)構(gòu)。此種語句四種語法格式:
⑴.DoWhile…Loop語句先判斷條件值,如果為真,執(zhí)行循環(huán)體,否則退出
⑵.DoUntil…Loop語句先判斷條件值,如果為假,執(zhí)行循環(huán)體,直到為真時(shí)退出
⑶.Do…LoopWhile語句先執(zhí)行循環(huán)體,后判斷條件值,為真繼續(xù)循環(huán),否則退出
⑷.Do…LoopUntil語句先執(zhí)行循環(huán)體,后判斷條件值,為假繼續(xù),直到為真退出⑴.DoWhile…Loop語句DimS%,i%S=0Fori=1to100S=S+I
Ifs>400thenExitforNextiPrint"S=",SDimS%,i%S=0i=1Dowhiles<=400S=S+i
i=i+1LoopPrint"S=",S
語法格式:
DoUntil〈條件表達(dá)式〉〈循環(huán)體〉
[ExitDo]
〈循環(huán)體〉
Loop
(2)DoUntil…Loop語句語法格式:DoWhile〈條件表達(dá)式〉〈循環(huán)體〉
[ExitDo]
〈循環(huán)體〉
LoopDimS%,i%S=0i=1Dountils>400S=S+i
i=i+1LoopPrint"S=",S說明:①條件表達(dá)式可以是一個(gè)邏輯表達(dá)式,也可以是一個(gè)關(guān)系表達(dá)式,其值應(yīng)是邏輯型。②DoWhile/Until和Loop應(yīng)成對(duì)出現(xiàn)。③循環(huán)體中要有控制循環(huán)的語句,以避免出現(xiàn)死循環(huán)。④由于該循環(huán)的特點(diǎn)是先判斷條件,然后再?zèng)Q定是否要執(zhí)行循環(huán)體里的語句。所以,這種循環(huán)可以一次也不執(zhí)行循環(huán)體。⑤ExitDo表示當(dāng)遇到該語句時(shí),強(qiáng)制退出循環(huán),執(zhí)行Loop后的下一條語句注意:①至少要執(zhí)行循環(huán)體一次。
②與DoWhile循環(huán)的區(qū)別:
DoWhile循環(huán)先測試條件是否成立,只有成立才執(zhí)行循環(huán);而該循環(huán)先執(zhí)行循環(huán)體,后測試條件是否成立。(3)Do…LoopWhile語句⑷.Do…LoopUntil語句
語法格式:
Do
〈循環(huán)體〉
[ExitDo]
〈循環(huán)體〉
LoopUntil〈條件表達(dá)式〉語法格式:
Do
〈循環(huán)體〉
[ExitDo]
〈循環(huán)體〉
LoopWhile〈條件表達(dá)式〉例:輸入有效位數(shù),按下述公式計(jì)算圓周率∏的有效值。m=val(text1.text)pai=2:p=0Do
t=s:p=spr(2+p):pai=t*2/pLoopUntilabs(t-s)<0.1^m功能:當(dāng)While的條件表達(dá)式的值是True時(shí)執(zhí)行循環(huán)體內(nèi)的代碼,直到While后的條件表達(dá)式的值為False。說明:它與Do…Loop語句的差別是:While…Wend語句中不能使用Exit語句跳出循環(huán)。語法格式:While〈條件表達(dá)式)等價(jià)于
doWhile(條件表達(dá)式)循環(huán)體循環(huán)體WendLOOP3、While…Wend循環(huán)結(jié)構(gòu)幾種循環(huán)語句比較For....toNextDowhile/until....Loopdo....LoopWhile/until...循環(huán)類型當(dāng)型循環(huán)當(dāng)型循環(huán)直到循環(huán)循環(huán)控制條件循環(huán)變量大于/小于終值條件成立/不成立條件成立/不成立循環(huán)變量初值在FOR語句中在DO之前在DO之前使循環(huán)結(jié)束For語句中無需專門語句必須用專門語句必須使用專門語句使用場合循環(huán)次數(shù)容易確定條件件易給出條件件易給出練習(xí):1、求100~200之間不能被3整除的數(shù)。2、判斷一個(gè)數(shù)是否為質(zhì)數(shù)。
解2:Value=Val(Text1.Text)Counter=2DoUntilValueModCounter=0OrCounter=ValueCounter=Counter+1LoopIfCounter=ValueThenPrint"質(zhì)數(shù)
解1:
value=val(Text1.text)
Forcounter=2Tovalue-1
IfvalueModcounter=0Then
ExitForNext
If
counter=valueThen
Print"質(zhì)數(shù)"4、驗(yàn)證哥德巴赫猜想:任意一個(gè)大于等于6的偶數(shù)都可以分解為兩個(gè)質(zhì)數(shù)之和?;舅枷耄簄為大于等于6的任一偶數(shù),可分解為n1和n2兩個(gè)數(shù),分別檢查n1和n2是否為素?cái)?shù),如都是,則為一組解。如n1不是素?cái)?shù),就不必再檢查n2是否素?cái)?shù)。先從n1=3開始,檢驗(yàn)n1和n2(n2=N-n1)是否素?cái)?shù)。然后使n1+2再檢驗(yàn)n1、n2是否素?cái)?shù),…直到n1=n/2為止。3、輸入兩個(gè)正整數(shù),求它們的最大公約數(shù)。輸入兩個(gè)自然數(shù)m,nr=mmodn若r=0,則n為m的最大公約數(shù)若r<>0,則m=n,n=r重復(fù)執(zhí)行第二步mnm=Text1.Textn=Text2.TextDot=mModnm=n:n=tLoopUntiln=0Printm二、循環(huán)的嵌套——多重循環(huán)結(jié)構(gòu)1、如果在一個(gè)循環(huán)內(nèi)完整地包含另一個(gè)循環(huán)結(jié)構(gòu),則稱為多重循環(huán),或循環(huán)嵌套,2、嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面是幾種常見的二重嵌套形式:(1)ForI=….…..ForJ=….….NextJ…..NextI(2)ForI=….…..DoWhile/Until….Loop…..NextI(3)DoWhile….…..ForJ=….….NextJ…..Loop(4)DoWhile/Until….…..DoWhile/Until….Loop…..Loop例題:在窗體上輸出100以內(nèi)質(zhì)數(shù)。PrivateSubCommand1_Click()DimvalueAsIntegerDimcounterAsIntegerDimnumAsIntegerMe.ClsForvalue=2
To100
Forcounter=2Tovalue-1
IfvalueModcounter=0ThenExitFor
EndIf
Next
Ifcounter=valueThenPrintvalue;Tab;num=num+1
IfnumMod3=0ThenPrint
EndIfNextPrintPrint"100以內(nèi)的質(zhì)數(shù)有"&num&"個(gè)"EndSub例題:在文本框內(nèi)輸出水仙花數(shù)。PrivateSubcommand1_Click()Dimx%,y%,z%,n%Forx=0To9Fory=0To9Forz=1To9Ifx^3+y^3+z^3=x+y*10+z*100Thentext1.text=x^3+y^3+z^3EndIfNextNextNextEndsubPrivateSubcommand1_Click()List1.ClearDimx%,y%,z%,n%Forn=100To999x=nMod10y=n\10Mod10z=n\100Ifx^3+y^3+z^3=nThentext1.text=x^3+y^3+z^3EndIfNextEndsub
我國古代數(shù)學(xué)家章丘建在“算經(jīng)”里提出一個(gè)
世界數(shù)學(xué)史上有名的百錢百雞問題:雞翁
一,值錢五,雞母一,值錢三,雞雛一,值
錢一。百錢買百雞,問雞翁、母、雛各幾
何?找出1~999之間所有的同構(gòu)數(shù)同構(gòu)數(shù):該數(shù)出現(xiàn)在它的平方數(shù)的右邊,如:
5—25,25—625輸入一個(gè)整數(shù),判斷其是否是“完全數(shù)”完全數(shù):該數(shù)的因子之和等于其本身,如
28=1+2+4+7+14練習(xí):例題:打印九九乘法表
Fori=1To9Forj=1To9e=i&"×"&j&"="&i*jPrintTab((j-1)*9+1);e;NextjPrintNexti例題:打印九九乘法表
Fori=1To9Forj=1Toi
e=j&"×"&i&"="&i*jPrintTab((j-1)*9+1);e;NextjPrintNexti練習(xí)實(shí)驗(yàn)教程:實(shí)驗(yàn)5對(duì)于循環(huán)的嵌套,要注意以下事項(xiàng):(1)內(nèi)循環(huán)變量與外循環(huán)變量不能同名;(2)外循環(huán)必須完全包
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)上冊數(shù)學(xué)教案-3信息窗一(長方體和正方體的認(rèn)識(shí))-青島版(五四學(xué)制)
- 2025年借調(diào)合同三方協(xié)議
- 《小數(shù)的大小比較》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年四年級(jí)下冊數(shù)學(xué)北師大版
- 2025年學(xué)習(xí)雷鋒精神62周年主題活動(dòng)實(shí)施方案 (4份)
- 2025年學(xué)習(xí)雷鋒精神六十二周年主題活動(dòng)方案 合計(jì)3份
- 蘇教版數(shù)學(xué)三年級(jí)上冊單元測試卷-第五單元-解決問題的策略含答案
- 2023年網(wǎng)絡(luò)及通信協(xié)議處理軟件資金需求報(bào)告
- 2025年呼和浩特職業(yè)學(xué)院單招職業(yè)傾向性測試題庫及答案一套
- 2025年河北旅游職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案
- 2025年廣西城市職業(yè)大學(xué)單招職業(yè)傾向性測試題庫學(xué)生專用
- 食品防護(hù)評(píng)估表
- 編輯出版史考試重點(diǎn)整理
- (74)-17.3手性高效液相色譜法
- 淺談新生兒肺透明膜病的影像學(xué)診斷
- SMT失效模式分析PFMEA
- 國際貿(mào)易地理全套課件
- 家校共育-助孩子成長-家長會(huì)課件
- 叉形件工藝及車床夾具設(shè)計(jì)說明書
- GB/T 5916-2008產(chǎn)蛋后備雞、產(chǎn)蛋雞、肉用仔雞配合飼料
- 《中小學(xué)教育懲戒規(guī)則》(試用)試題及答案
- GB/T 23723.1-2009起重機(jī)安全使用第1部分:總則
評(píng)論
0/150
提交評(píng)論