版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
演示文稿控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計目前一頁\總數(shù)四十八頁\編于二點(diǎn)(優(yōu)選)控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計目前二頁\總數(shù)四十八頁\編于二點(diǎn)
本章內(nèi)容及要求:(1)掌握For…..Next語句及ExitFor語句的使用;(2)掌握Do….Loop循環(huán)語句與ExitDo語句的使用;(3)掌握循環(huán)結(jié)構(gòu)的嵌套應(yīng)用;(4)掌握循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)的嵌套應(yīng)用。目前三頁\總數(shù)四十八頁\編于二點(diǎn)6.1概述在VisualBasic程序設(shè)計中,實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語句主要有下列幾種:
l
For…Next語句
Do…Loop語句
l
While…Wend語句
DoWhile<條件>…Loop形式Do…LoopWhile<條件>形式DoUntil<條件>…Loop形式Do…LoopUntil<條件>形式Do…Loop形式目前四頁\總數(shù)四十八頁\編于二點(diǎn)打印九九乘法表
Dim
Sgs
As
String
Dim
i,
j
As
Integer
For
i
=
1
To
9
’被乘數(shù)從1變到9
For
j
=
i
To
9
’乘數(shù)從1變到9
Sgs
=
i
&
"×"
&
j
&
"="
&
Str(i
*
j)
’打印公式如1×1=1
Picture1.Print
Tab((j
-
1)
*
9
+
1);Sgs;
Next
j
Picture1.Print
Next
I
目前五頁\總數(shù)四十八頁\編于二點(diǎn)For循環(huán)語句(一般用于循環(huán)次數(shù)已知)形式:For循環(huán)變量=初值to終值[Step步長]
語句塊
[ExitFor]
語句塊Next[循環(huán)變量]循環(huán)體>=0循環(huán)變量<=終值<0循環(huán)變量>=終值=1可省略
步長6.2For...Next循環(huán)結(jié)構(gòu)目前六頁\總數(shù)四十八頁\編于二點(diǎn)循環(huán)次數(shù)例:ForI=2To13Step3PrintI,NextIPrint“I=“,I循環(huán)執(zhí)行次數(shù)
4輸出I的值分別為:25811出了循環(huán)輸出為:I=146.2For...Next循環(huán)結(jié)構(gòu)目前七頁\總數(shù)四十八頁\編于二點(diǎn)6.2For...Next循環(huán)結(jié)構(gòu)注意跳出FOR循環(huán)時的循環(huán)變量的值Fori=1to10step1s=s+iNextiPrintiFori=-1to-10step-1s=s+iNextiPrinti目前八頁\總數(shù)四十八頁\編于二點(diǎn)6.2For...Next循環(huán)結(jié)構(gòu)注意對于For…Next語句來說,一旦進(jìn)入循環(huán),其“終止值”和“增量”便不會再改變了。PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerj=10:k=1Fori=1TojStepkPrintij=j-1k=k+1NextPrintj,kEndSub目前九頁\總數(shù)四十八頁\編于二點(diǎn)練習(xí):分析下面程序段結(jié)束時窗體上顯示的值是多少?
(2)i2=0Fori=1To-2Step-1 i2=i2+1NextPrinti,i2(-34)(1)Fori=1To10 i2=i2+1NextPrinti
(11)(3)i2=0Fori=1To5Step2 i2=i2+1NextPrinti(7)(4)i2=1Fori=1To10 i=i+1 i2=i2+1NextPrinti,i2(116)(5)i2=1i3=10i=10Fori=1Toi3 i=i+1 i2=i2+1 i3=i3+1NextPrinti,i2(116)(6)i2=0Fori=1To10i2=i2+1Ifi>6ThenExitForNextPrinti,i2(77)(7)i2=0i=10Doi2=i2+1LoopWhilei=i2Printi2(1)目前十頁\總數(shù)四十八頁\編于二點(diǎn)例6.7編程計算:S=1+2+3+…+100DimS%,I%S=0'累加前變量S為0ForI=1to100S=S+INextIPrint"S=",S當(dāng)I<=100I=I+1打印SS=0,I=1S=S+I例6.7的算法流程圖6.2For...Next循環(huán)結(jié)構(gòu)目前十一頁\總數(shù)四十八頁\編于二點(diǎn)前測型:
DoWhile<條件>
語句塊
[ExitDo]
語句塊
LoopDo…Loop循環(huán)語句使用形式6.3Do...Loop循環(huán)結(jié)構(gòu)目前十二頁\總數(shù)四十八頁\編于二點(diǎn)6.2Do...Loop循環(huán)結(jié)構(gòu)PrivateSubForm_Click()DimiAsInteger:DimaAsInteger'定義所需變量
i=0:a=0'給變量賦初值0,這兩條語句可省略
DoWhilei<100i=i+1'每次循環(huán),變量i都增加1a=a+i'每次循環(huán),變量a都加變量i的值
LoopPrinta'計算完畢,變量a的值即為所求EndSub例:使用DoWhile…Loop循環(huán)語句計算1+2+3+…+100的值目前十三頁\總數(shù)四十八頁\編于二點(diǎn)后測型:
Do
語句塊
[ExitDo]
語句塊
LoopWhile<條件>6.3Do...Loop循環(huán)結(jié)構(gòu)目前十四頁\總數(shù)四十八頁\編于二點(diǎn)6.3Do...Loop循環(huán)結(jié)構(gòu)例:使用Do…LoopWhile循環(huán)語句計算1+2+3+…+n的值,n的值由文本框輸入。PrivateSubCommand1_Click()DimiAsInteger,nAsInteger,aAsInteger'定義所需變量
n=Text1.Text'得到輸入的值
Doi=i+1'每次循環(huán),變量i都增加1a=a+i'每次循環(huán),變量a都加變量i的值
LoopWhilei<nText2.Text=a'顯示計算結(jié)果,變量a的值即為所求EndSub目前十五頁\總數(shù)四十八頁\編于二點(diǎn)前測型:
DoUntil<條件>
語句塊
[ExitDo]
語句塊
LoopDo…Loop循環(huán)語句使用形式6.3Do...Loop循環(huán)結(jié)構(gòu)目前十六頁\總數(shù)四十八頁\編于二點(diǎn)6.3Do...Loop循環(huán)結(jié)構(gòu)例:計算階乘n!的值(n的值由文本框輸入)。PrivateSubCommand1_Click()DimiAsInteger,nAsIntegerDimaAsLongn=Text1.Text'得到輸入的值na=1'必須為變量a賦初值1DoUntili=ni=i+1'每次循環(huán),變量i都增加1a=a*i'每次循環(huán),變量a都乘以變量i的值
LoopText2.Text=a'計算完畢,變量a的值即為所求EndSub目前十七頁\總數(shù)四十八頁\編于二點(diǎn)后測型:
Do
語句塊
[ExitDo]
語句塊
LoopUntil<條件>6.3Do...Loop循環(huán)結(jié)構(gòu)目前十八頁\總數(shù)四十八頁\編于二點(diǎn)例:使用級數(shù)求π的值。根據(jù)下式,計算圓周率π的近似值,當(dāng)計算到絕對值小于0.0001的通項(xiàng)時,認(rèn)為滿足精度要求,停止計算。π/4=1-1/3+1/5-1/7+…+(-1)n+11/2n-1+…6.3Do...Loop循環(huán)結(jié)構(gòu)目前十九頁\總數(shù)四十八頁\編于二點(diǎn)PrivateSubcmdPi_Click()DimaAsSingle'變量a保存通項(xiàng)之和
DimmAsSingle'變量m保存通項(xiàng)的絕對值
DimsAsInteger'變量s產(chǎn)生通項(xiàng)的符號
DimiAsInteger'變量i產(chǎn)生通項(xiàng)的分母
s=1'第一項(xiàng)符號為正
i=1'第一項(xiàng)為1Do'開始循環(huán)
m=1/i'計算通項(xiàng)的絕對值
a=a+s*m'總和加上一個通項(xiàng)
i=i+2'產(chǎn)生下一個通項(xiàng)分母
s=-s'輪流轉(zhuǎn)換通項(xiàng)的正負(fù)號
LoopUntilm<0.0001'測試是否滿足精度要求
Text1.Text=a*4'輸出計算結(jié)果EndSub6.3Do...Loop循環(huán)結(jié)構(gòu)目前二十頁\總數(shù)四十八頁\編于二點(diǎn)6.3Do...Loop循環(huán)結(jié)構(gòu)Do
語句塊
[ExitDo]
語句塊LoopPrivateSubCommand1_Click()DimiAsInteger,nAsIntegerDimaAsLongn=val(Text1.Text)a=1Doi=i+1a=a*iIfi=nThenExitDoLoopText2.Text=aEndSub例6.5:計算n!目前二十一頁\總數(shù)四十八頁\編于二點(diǎn)本節(jié)小結(jié):(1)當(dāng)使用While<條件>構(gòu)成循環(huán)時,當(dāng)條件為“真”,則反復(fù)執(zhí)行循環(huán)體,當(dāng)條件為“假”,則退出循環(huán)。(2)當(dāng)使用Until<條件>構(gòu)成循環(huán)時,當(dāng)條件為“假”,則反復(fù)執(zhí)行循環(huán)體,直到條件成立,即為“真”時,則退出循環(huán)。
(3)在循環(huán)體內(nèi)一般應(yīng)有一個專門用來改變條件表達(dá)式中變量的語句,以使隨著循環(huán)的執(zhí)行,條件趨于不成立(或成立),最后達(dá)到退出循環(huán)。(4)語句ExitDo的作用是退出它所在的循環(huán)結(jié)構(gòu),它只能用在DO/Loop結(jié)構(gòu)中,并且常常是同選擇結(jié)構(gòu)一起出現(xiàn)在循環(huán)結(jié)構(gòu)中,用來實(shí)現(xiàn)當(dāng)滿足某一條件時提前退出循環(huán)。6.3Do...Loop循環(huán)結(jié)構(gòu)目前二十二頁\總數(shù)四十八頁\編于二點(diǎn)
思考:將一個十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制。
算法流程圖6.3Do...Loop循環(huán)結(jié)構(gòu)
用Do...Loop循環(huán)的五種形式分別完成目前二十三頁\總數(shù)四十八頁\編于二點(diǎn)
將一個十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制。
算法流程圖6.3Do...Loop循環(huán)結(jié)構(gòu)分析:將一個十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制采用連除2取余數(shù)的方法,即將十進(jìn)制數(shù)除以2取余數(shù),直到商為0,然后所得的余數(shù)即為二進(jìn)制數(shù)各位的數(shù)碼,從右到左排列,第一次除2的余數(shù)在最右邊。算法設(shè)計如下:用變量Dec表示十進(jìn)制數(shù),Bin表示轉(zhuǎn)換所得的二進(jìn)制數(shù)字符串。(1)
輸入十進(jìn)制Dec(2)
Dec除以2得余數(shù)Res,商又賦值給Dec;讓Bin=Res&Bin(3)
若Dec=0,則算法結(jié)束;否則執(zhí)行(2)目前二十四頁\總數(shù)四十八頁\編于二點(diǎn)將一個十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制的程序如下:
PrivateSubForm_Click()DimDecAsInteger'表示十進(jìn)制數(shù)
DimBinAsString'轉(zhuǎn)換為二進(jìn)制表示
DimResAsIntegerDec=Val(InputBox("輸入一個十進(jìn)制數(shù)Dec=?"))Print"十進(jìn)制數(shù):";DecDoRes=DecMod2'求出除以2的余數(shù)
Bin=Res&BinDec=Dec\2LoopUntilDec=0Print"轉(zhuǎn)換為二進(jìn)制數(shù)為:";BinEndSub
6.3Do...Loop循環(huán)結(jié)構(gòu)目前二十五頁\總數(shù)四十八頁\編于二點(diǎn)6.4.1While…Wend語句使用格式如下:
While<條件><循環(huán)塊>Wend
說明:該語句的功能與DoWhile<條件>….Loop實(shí)現(xiàn)的循環(huán)完全相同。6.4While…Wend語句目前二十六頁\總數(shù)四十八頁\編于二點(diǎn)
6.5.1循環(huán)的嵌套——多重循環(huán)結(jié)構(gòu)
如果在一個循環(huán)內(nèi)完整地包含另一個循環(huán)結(jié)構(gòu),則稱為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面是幾種常見的二重嵌套形式:6.5嵌套結(jié)構(gòu)目前二十七頁\總數(shù)四十八頁\編于二點(diǎn)(1)ForI=….…..ForJ=….….NextJ…..NextI(2)ForI=….…..DoWhile/Until….….Loop…..NextI(3)DoWhile….…..ForJ=….….NextJ…..Loop(4)DoWhile/Until….…..DoWhile/Until….….Loop…..Loop6.5嵌套結(jié)構(gòu)目前二十八頁\總數(shù)四十八頁\編于二點(diǎn)Fori=1To10Forj=1To20… NextjNextiFori=1To10…NextiFori=1To10…Nexti對于循環(huán)的嵌套,要注意以下事項(xiàng):
(1)內(nèi)循環(huán)變量與外循環(huán)變量不能同名;
(2)外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;下面是正確的嵌套
6.5嵌套結(jié)構(gòu)目前二十九頁\總數(shù)四十八頁\編于二點(diǎn)
Fori=1To10Forj=1To20… Nexti NextjFori=1To10Fori=1To20… Nexti Nexti下面是不正確的嵌套
6.5嵌套結(jié)構(gòu)目前三十頁\總數(shù)四十八頁\編于二點(diǎn)
PrivateSubForm_Click()DimiAsInteger,jAsIntegerFori=1To3Print"i=";iForj=1To3PrintTab;"j=";jNextNextEndSub循環(huán)嵌套的執(zhí)行流程:6.5嵌套結(jié)構(gòu)目前三十一頁\總數(shù)四十八頁\編于二點(diǎn)6.5嵌套結(jié)構(gòu)PrivateSubCommand1_Click()Dimx%,a%,y%Forx=1to2a=0Fory=1tox+1a=a+1NextyPrinta;NextxEndSub程序運(yùn)行后,單擊命令按鈕,在窗體上顯示的值是
(23)目前三十二頁\總數(shù)四十八頁\編于二點(diǎn)6.5嵌套結(jié)構(gòu)Exit
Do和ExitFor語句在循環(huán)嵌套時的作用目前三十三頁\總數(shù)四十八頁\編于二點(diǎn)6.5嵌套結(jié)構(gòu)目前三十四頁\總數(shù)四十八頁\編于二點(diǎn)例:打印九九乘法表.
Fori=1To9Forj=1To9se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9+1);se;NextjPicture1.PrintNexti6.5嵌套結(jié)構(gòu)目前三十五頁\總數(shù)四十八頁\編于二點(diǎn)6.5嵌套結(jié)構(gòu)例:
編一程序,顯示出所有的水仙花數(shù)。所謂水仙花數(shù),是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)字本身。例如,153是水仙花數(shù),因?yàn)椋耗壳叭揬總數(shù)四十八頁\編于二點(diǎn)6.5嵌套結(jié)構(gòu)PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerDimnAsIntegerFori=1To9'i表示百位上的數(shù)
Forj=0To9'j表示十位上的數(shù)
Fork=0To9'k表示個位上的數(shù)
n=i*100+j*10+kIfi^3+j^3+k^3=nThenPrintnNextkNextjNextiEndSub解法一:目前三十七頁\總數(shù)四十八頁\編于二點(diǎn)6.5嵌套結(jié)構(gòu)解法二:PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerDimnAsIntegerForn=100To999i=n\100'得到百位上的數(shù)字
j=n\10-i*10'得到十位上的數(shù)字
k=nMod10'得到個位上的數(shù)字
Ifi^3+j^3+k^3=nThenPrintnNextnEndSub目前三十八頁\總數(shù)四十八頁\編于二點(diǎn)6.5.2循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)的嵌套
在循環(huán)結(jié)構(gòu)中可以完整嵌套選擇結(jié)構(gòu),即整個選擇結(jié)構(gòu)都屬于循環(huán)體。在選擇結(jié)構(gòu)中嵌套循環(huán)結(jié)構(gòu)時,則要求整個循環(huán)結(jié)構(gòu)必須完整地嵌套在一個分支內(nèi),一個循環(huán)結(jié)構(gòu)不允許出現(xiàn)在兩個或兩個以上的分支內(nèi)。6.5嵌套結(jié)構(gòu)目前三十九頁\總數(shù)四十八頁\編于二點(diǎn)(1)ForI=…………IF…Then……EndIF……NextI(6)IF…Then……ForI=…………EndIF……NextI(5)SelectCase……ForI=…………Case…………Case…………NextI………EndSelect(3)ForI=…………IF…Then……NextI……EndIF(2)IF…Then……ForI=…………NextI……EndIF(4)ForI=…………SelectCase…Case…………Case…………EndSelect……NextI×××6.5嵌套結(jié)構(gòu)目前四十頁\總數(shù)四十八頁\編于二點(diǎn)6.6強(qiáng)制退出循環(huán)用Exitfor語句強(qiáng)制退出For循環(huán)
ExitFor語句可以使程序從For循環(huán)中退出來,轉(zhuǎn)到Next語句后面的程序繼續(xù)執(zhí)行,而不必等到循環(huán)變量到達(dá)終值時才退出來。注意:在循環(huán)體外面,不可以使用ExitFor語句,而且ExitFor通常與IF語句一起使用。例:用300元買100只雞,母雞9元1只,小雞1元1只,問母雞、小雞各應(yīng)買多少只?分析:設(shè)買母雞x只,則x的變化范圍為1~30只,因?yàn)橘I的母雞只數(shù)不可能超過30只,超過30只就不可能買到100只雞。設(shè)小雞為y只,則y=100-x。下面要做的工作就是求x為何值時,9x+y=300成立。目前四十一頁\總數(shù)四十八頁\編于二點(diǎn)6.6強(qiáng)制退出循環(huán)程序代碼:OptionExplicitPrivateSubForm_Click()DimxasIntegerDim
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)學(xué)生社團(tuán)活動風(fēng)險管理制度
- 人力資源管理與發(fā)展制度
- 企業(yè)調(diào)休制度
- 2026年物流管理專業(yè)模擬試題及答案詳解
- 2026年歷史事件解析歷史人物研究考試題集
- 2026年網(wǎng)絡(luò)工程師網(wǎng)絡(luò)配置試題網(wǎng)絡(luò)故障排查與優(yōu)化題
- 2026年現(xiàn)代企業(yè)管理知識評估試題庫
- 2026年建筑工程設(shè)計與施工專業(yè)題庫資源
- 2025年企業(yè)產(chǎn)品水足跡核算軟件采購合同
- 急診骨折患者的固定急救處理流程及制度
- 2026河南安陽市兵役登記參考考試試題及答案解析
- Unit 1 Time to Relax Section B(1a-2c)教學(xué)課件 人教新教材2024版八年級英語下冊
- 買車背戶協(xié)議書
- 護(hù)理投訴糾紛防范及處理
- 煙囪技術(shù)在血管腔內(nèi)修復(fù)術(shù)中的應(yīng)用教案
- 檢驗(yàn)科甲流實(shí)驗(yàn)室檢測流程
- 紀(jì)檢監(jiān)察業(yè)務(wù)培訓(xùn)
- 急慢性失血性貧血課件
- 人教版七年級上冊歷史期末模擬試卷及答案
- 2025年及未來5年中國肉干肉脯市場調(diào)查研究及行業(yè)投資潛力預(yù)測報告
- 有機(jī)合成化學(xué)王玉爐第三版省公開課一等獎全國示范課微課金獎?wù)n件
評論
0/150
提交評論