




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章程序控制結(jié)構(gòu)二循環(huán)結(jié)構(gòu)主要內(nèi)容1.為什么要使用循環(huán)結(jié)構(gòu)?2.For…Next循環(huán)語(yǔ)句3.While循環(huán)4.Do…Loop循環(huán)5.循環(huán)嵌套6.循環(huán)語(yǔ)句使用舉例
如果要編寫一個(gè)程序,在窗體上輸出6行“**********”,如下圖所示:1.為什么要使用循環(huán)結(jié)構(gòu)?
該程序最直覺(jué)的編寫方法如下:1為什么要使用循環(huán)結(jié)構(gòu)?PrivateSubForm_Click()
Print"**********"Print"**********"Print"**********"Print"**********"Print"**********"Print"**********"EndSub但上述程序結(jié)構(gòu)讓人覺(jué)得煩瑣,尤其是當(dāng)需要100行或1000行“**********”的話,源程序?qū)⒆兊煤荛L(zhǎng)。所以,在程序設(shè)計(jì)中,我們需要使用循環(huán)結(jié)構(gòu),來(lái)進(jìn)行一系列重復(fù)的動(dòng)作。在VB中,當(dāng)需要對(duì)某一段程序反復(fù)執(zhí)行多次,且反復(fù)執(zhí)行的次數(shù)是可以預(yù)知的或可以用某種條件控制的,就可以使用循環(huán)結(jié)構(gòu)。1為什么要使用循環(huán)結(jié)構(gòu)?
使用循環(huán)結(jié)構(gòu),上述程序可以修改為:1為什么要使用循環(huán)結(jié)構(gòu)?PrivateSubForm_Click()
ForI=1To6Print"**********"NextIEndSub
與前面的程序相比,循環(huán)結(jié)構(gòu)使得程序更加清晰,功能更加強(qiáng)大,修改也更加方便。
在VB中,通常可以使用如下循環(huán)語(yǔ)句:
■For…Next語(yǔ)句:適合處理循環(huán)次數(shù)預(yù)知的循環(huán)問(wèn)題。
■
While...Wend語(yǔ)句、Do…Loop語(yǔ)句:適合處理用循環(huán)條件控制的循環(huán)問(wèn)題。1為什么要使用循環(huán)結(jié)構(gòu)?
For…Next循環(huán)語(yǔ)句適合處理循環(huán)次數(shù)已知的循環(huán)結(jié)構(gòu)。
For…Next循環(huán)語(yǔ)句的格式:
For<循環(huán)控制變量>=<初值>TO<終值>[Step<步長(zhǎng)>]<循環(huán)體>
[ExitFor]Next<循環(huán)控制變量>2For…Next循環(huán)語(yǔ)句ForI=1To6Print"**********"NextI
For…Next循環(huán)語(yǔ)句的執(zhí)行過(guò)程
2For…Next循環(huán)語(yǔ)句循環(huán)變量賦初值循環(huán)變量未超過(guò)終值?循環(huán)體循環(huán)變量加上一個(gè)步長(zhǎng)FalseTrue功能:
當(dāng)循環(huán)變量的值在初值到終值范圍內(nèi)時(shí),執(zhí)行一次循環(huán)體中的語(yǔ)句塊,并使初值增加一個(gè)步長(zhǎng)。當(dāng)循環(huán)變量的值不在初值到終值范圍內(nèi)時(shí),就退出循環(huán),執(zhí)行Next后面的語(yǔ)句。
2For…Next循環(huán)語(yǔ)句④注意:(1)For循環(huán)語(yǔ)句是先判斷后執(zhí)行。(2)當(dāng)退出循環(huán)后,循環(huán)變量的值保持退出時(shí)的值。(3)在循環(huán)體內(nèi)可多次引用循環(huán)控制變量,但最好不要給它賦值,否則會(huì)影響原來(lái)的循環(huán)控制規(guī)律。例題1計(jì)算S=1+2+3+……+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0ForI=1To100S=S+INextIPrint"1+2+3+……+100=",SEndSub■問(wèn)題3:根據(jù)例題1,自己編寫程序計(jì)算20!,與計(jì)算累加和相比,計(jì)算階乘時(shí)應(yīng)注意什么問(wèn)題?例題2:七彩字PrivateSubForm_click()Dimi%Randomize
Fori=1To1000 Form1.CurrentX=500+i Form1.CurrentY=500+i
ForeColor=RGB(Int(256*Rnd),Int(256*Rnd),Int(256*Rnd)) Print"Hello"
NextiEndSub3While循環(huán)語(yǔ)句While循環(huán)又稱“當(dāng)”型循環(huán),它是通過(guò)“循環(huán)條件”控制重復(fù)執(zhí)行一組語(yǔ)句。While<循環(huán)條件> <循環(huán)體>Wend例題2:使用while語(yǔ)句,計(jì)算:S=1+2+3+……100的值。
Do…Loop循環(huán)語(yǔ)句的四種形式4Do…Loop循環(huán)語(yǔ)句DoWhile<條件><循環(huán)體>[ExitDo]LoopDo<循環(huán)體>[ExitDo]LoopWhile<條件>DoUntil<條件><循環(huán)體>[ExitDo]LoopDo<循環(huán)體>[ExitDo]LoopUntil<條件>
四種形式的Do…Loop語(yǔ)句的比較:
■四種循環(huán)結(jié)構(gòu)都是以Do語(yǔ)句開始,而以Loop語(yǔ)句結(jié)束。
■若循環(huán)控制條件跟在Do語(yǔ)句后,則要先判斷條件,再執(zhí)行循環(huán)體,因此是一種當(dāng)型循環(huán);若循環(huán)控制條件跟在Loop語(yǔ)句后,則是先執(zhí)行循環(huán)體,再判斷條件
■若條件語(yǔ)句使用While,則當(dāng)條件為真時(shí),執(zhí)行循環(huán)體,條件為假時(shí),退出循環(huán);若條件語(yǔ)句使用Until,則當(dāng)條件為假時(shí),執(zhí)行循環(huán)體,條件為真時(shí),則退出循環(huán)。4Do…Loop循環(huán)語(yǔ)句例題2:分別使用四種形式的Do…Loop語(yǔ)句,計(jì)算:S=1+2+3+……100的值。例題2-1用Do語(yǔ)句計(jì)算1+…+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0I=0DoWhileI<=100S=S+II=I+1LoopPrint"1+2+3+……+100=",SEndSub例題2-2用Do語(yǔ)句計(jì)算1+…+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0I=0DoS=S+II=I+1LoopWhileI<=100Print"1+2+3+……+100=",SEndSub例題2-3用Do語(yǔ)句計(jì)算1+…+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0I=0DoUntilI>100S=S+II=I+1LoopPrint"1+2+3+……+100=",SEndSub例題2-4用Do語(yǔ)句計(jì)算1+…+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0I=0DoS=S+II=I+1LoopUntilI>100Print"1+2+3+……+100=",SEndSub趣味問(wèn)題1有一箱球(1到100個(gè)),如果一次數(shù)4個(gè)則余2個(gè),一次數(shù)5個(gè)則余3個(gè),一次數(shù)6個(gè)正好,問(wèn)有多少個(gè)球?
無(wú)論是For循環(huán)還是Do循環(huán),它們的循環(huán)體中還再次可以包含循環(huán)語(yǔ)句,這樣就形成了循環(huán)嵌套(也叫多重循環(huán))。在VB中,F(xiàn)or循環(huán)和Do循環(huán)可以互相嵌套。5循環(huán)嵌套
循環(huán)嵌套的結(jié)構(gòu)
內(nèi)層循環(huán)必須完整地嵌套在外層循環(huán)之內(nèi),即內(nèi)層循環(huán)是外層循環(huán)體的一部分,內(nèi)外層循環(huán)不能交叉。例如:
循環(huán)嵌套的執(zhí)行過(guò)程
多重循環(huán)的執(zhí)行由里向外展開,即先執(zhí)行內(nèi)層循環(huán),再執(zhí)行外層循環(huán)。例如,一個(gè)三重循環(huán)的執(zhí)行過(guò)程與鐘表的秒針、分針和時(shí)針的運(yùn)轉(zhuǎn)類似。5循環(huán)嵌套以下程序段,每層循環(huán)各執(zhí)行多少次?寫出運(yùn)行結(jié)果。
ForI=1To3Print"######"ForJ=1To2Print"@@@@@@" NextJNextI5循環(huán)嵌套分析
■根據(jù)前面的經(jīng)驗(yàn),計(jì)算階乘可以用循環(huán)結(jié)構(gòu)完成,計(jì)算階乘的累加和也可以使用循環(huán)結(jié)構(gòu)完成。
■構(gòu)造兩重循環(huán),外層循環(huán)實(shí)現(xiàn)累加,完成和的計(jì)算;內(nèi)層循環(huán)實(shí)現(xiàn)累乘,完成階乘的計(jì)算。例題3:計(jì)算S=1!+2!+3!+……+20!VB程序設(shè)計(jì)基礎(chǔ)課件例題3計(jì)算S=1!+2!+……+20!PrivateSubForm_Click()
DimSAsSingle,tempAsSingleDimIAsInteger,JAsIntegerS=0ForI=1To20
temp=1ForJ=1ToI
temp=temp*JNextJS=S+tempNextIPrint"1!+2!+……20!=",SEndSubVB程序設(shè)計(jì)基礎(chǔ)課件6循環(huán)語(yǔ)句使用舉例例題4:找出100~999之間的所有水仙花數(shù)。所謂水仙花數(shù),是指這樣三位數(shù):它的各位數(shù)字的立方和等于它本身。例如:407=43+03+73
。例題5:編程輸出乘法口訣例題4找出所有的水仙花數(shù)PrivateSubForm_Click()DimIAsInteger,aAsIntegerDimbAsInteger,cAsIntegerForI=100To999
a=I\100b=(I-100*a)\10c=I-100*a-10*b
IfI=a^3+b^3+c^3ThenPrintINextIEndSub例題5輸出乘法口訣—1PrivateSubForm_Click()Dimi%,j%Fori=1To9 Forj=1Toi Printi*j; Nextj PrintNextiEndSubPrivateSubform_Click()ForI=1To9ForJ=1ToI
PrintI;"*";J;"=";I*J;
'不換行NextJ
Print'換行NextIEndSub例題5輸出乘法口訣—2例6輸出圖形PrivateSubpicture1_Click()Picture1.Cls'清除圖片框
n=Val(InputBox("請(qǐng)輸入行數(shù)"))
Fori=1Ton Picture1.PrintTab(n+1-i);'控制打印起點(diǎn)
Forj=1To2*i-1 Picture1.Print"*";
Nextj Picture1.Print
Nex
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)新驅(qū)動(dòng):行業(yè)新視角下的壓力鋼管疲勞壽命評(píng)估技術(shù)探討
- 2025年制造業(yè)智能制造與供應(yīng)鏈協(xié)同研究報(bào)告
- 上海歐華職業(yè)技術(shù)學(xué)院《基因工程原理及實(shí)驗(yàn)技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 衢州學(xué)院《高級(jí)俄語(yǔ)二》2023-2024學(xué)年第一學(xué)期期末試卷
- 河南林業(yè)職業(yè)學(xué)院《設(shè)計(jì)思維訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 北京經(jīng)濟(jì)技術(shù)職業(yè)學(xué)院《建筑施工組織與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年制造業(yè)企業(yè)競(jìng)爭(zhēng)力提升策略與案例分析
- 科技培訓(xùn)中心行業(yè)的協(xié)同育人機(jī)制研究-洞察及研究
- 智能能源網(wǎng)絡(luò)架構(gòu)-洞察及研究
- 小學(xué)無(wú)紙化考試活動(dòng)方案
- 標(biāo)本采集錯(cuò)誤警示教育
- 2025年人教版小學(xué)四年級(jí)下冊(cè)數(shù)學(xué)期末提升測(cè)試試題(含答案和解析)
- 2025年高等自學(xué)教育考試馬克思主義基本原理概論全真模擬試卷及答案(共四套)
- 2025年安徽省高考物理真題(解析版)
- 2025年新疆中考數(shù)學(xué)真題試卷及答案
- 2025-2030年中國(guó)茶具行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報(bào)告
- 2025年山東省高考招生統(tǒng)一考試高考真題化學(xué)試卷(真題+答案)
- 2025至2030年中國(guó)月子中心行業(yè)競(jìng)爭(zhēng)格局分析及市場(chǎng)前景趨勢(shì)報(bào)告
- 事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)制度
- 醫(yī)院培訓(xùn)課件:《緊急情況下口頭醫(yī)囑制度與執(zhí)行流程》
- 2023年山東省夏季普通高中學(xué)業(yè)水平合格考試會(huì)考生物試題及參考答案
評(píng)論
0/150
提交評(píng)論