![vb控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view/5b6fea5c38d8849b05e80089246cfe46/5b6fea5c38d8849b05e80089246cfe461.gif)
![vb控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view/5b6fea5c38d8849b05e80089246cfe46/5b6fea5c38d8849b05e80089246cfe462.gif)
![vb控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view/5b6fea5c38d8849b05e80089246cfe46/5b6fea5c38d8849b05e80089246cfe463.gif)
![vb控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view/5b6fea5c38d8849b05e80089246cfe46/5b6fea5c38d8849b05e80089246cfe464.gif)
![vb控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view/5b6fea5c38d8849b05e80089246cfe46/5b6fea5c38d8849b05e80089246cfe465.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
會(huì)計(jì)學(xué)1vb控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
本章內(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)用。第1頁/共49頁6.1概述在VisualBasic程序設(shè)計(jì)中,實(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形式第2頁/共49頁打印九九乘法表
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
第3頁/共49頁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)第4頁/共49頁循環(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)第5頁/共49頁6.2For...Next循環(huán)結(jié)構(gòu)注意跳出FOR循環(huán)時(shí)的循環(huán)變量的值Fori=1to10step1s=s+iNextiPrintiFori=-1to-10step-1s=s+iNextiPrinti第6頁/共49頁6.2For...Next循環(huán)結(jié)構(gòu)注意對于For…Next語句來說,一旦進(jìn)入循環(huán),其“終止值”和“增量”便不會(huì)再改變了。PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerj=10:k=1Fori=1TojStepkPrintij=j-1k=k+1NextPrintj,kEndSub第7頁/共49頁練習(xí):分析下面程序段結(jié)束時(shí)窗體上顯示的值是多少?
(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)第8頁/共49頁例6.7編程計(jì)算: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)第9頁/共49頁前測型:
DoWhile<條件>
語句塊
[ExitDo]
語句塊
LoopDo…Loop循環(huán)語句使用形式6.3Do...Loop循環(huán)結(jié)構(gòu)第10頁/共49頁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'計(jì)算完畢,變量a的值即為所求EndSub例:使用DoWhile…Loop循環(huán)語句計(jì)算1+2+3+…+100的值第11頁/共49頁后測型:
Do
語句塊
[ExitDo]
語句塊
LoopWhile<條件>6.3Do...Loop循環(huán)結(jié)構(gòu)第12頁/共49頁6.3Do...Loop循環(huán)結(jié)構(gòu)例:使用Do…LoopWhile循環(huán)語句計(jì)算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'顯示計(jì)算結(jié)果,變量a的值即為所求EndSub第13頁/共49頁前測型:
DoUntil<條件>
語句塊
[ExitDo]
語句塊
LoopDo…Loop循環(huán)語句使用形式6.3Do...Loop循環(huán)結(jié)構(gòu)第14頁/共49頁6.3Do...Loop循環(huán)結(jié)構(gòu)例:計(jì)算階乘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'計(jì)算完畢,變量a的值即為所求EndSub第15頁/共49頁后測型:
Do
語句塊
[ExitDo]
語句塊
LoopUntil<條件>6.3Do...Loop循環(huán)結(jié)構(gòu)第16頁/共49頁例:使用級數(shù)求π的值。根據(jù)下式,計(jì)算圓周率π的近似值,當(dāng)計(jì)算到絕對值小于0.0001的通項(xiàng)時(shí),認(rèn)為滿足精度要求,停止計(jì)算。π/4=1-1/3+1/5-1/7+…+(-1)n+11/2n-1+…6.3Do...Loop循環(huán)結(jié)構(gòu)第17頁/共49頁P(yáng)rivateSubcmdPi_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'計(jì)算通項(xiàng)的絕對值
a=a+s*m'總和加上一個(gè)通項(xiàng)
i=i+2'產(chǎn)生下一個(gè)通項(xiàng)分母
s=-s'輪流轉(zhuǎn)換通項(xiàng)的正負(fù)號
LoopUntilm<0.0001'測試是否滿足精度要求
Text1.Text=a*4'輸出計(jì)算結(jié)果EndSub6.3Do...Loop循環(huán)結(jié)構(gòu)第18頁/共49頁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:計(jì)算n!第19頁/共49頁本節(jié)小結(jié):(1)當(dāng)使用While<條件>構(gòu)成循環(huán)時(shí),當(dāng)條件為“真”,則反復(fù)執(zhí)行循環(huán)體,當(dāng)條件為“假”,則退出循環(huán)。(2)當(dāng)使用Until<條件>構(gòu)成循環(huán)時(shí),當(dāng)條件為“假”,則反復(fù)執(zhí)行循環(huán)體,直到條件成立,即為“真”時(shí),則退出循環(huán)。
(3)在循環(huán)體內(nèi)一般應(yīng)有一個(gè)專門用來改變條件表達(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)滿足某一條件時(shí)提前退出循環(huán)。6.3Do...Loop循環(huán)結(jié)構(gòu)第20頁/共49頁
思考:將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制。
算法流程圖6.3Do...Loop循環(huán)結(jié)構(gòu)
用Do...Loop循環(huán)的五種形式分別完成第21頁/共49頁
將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制。
算法流程圖6.3Do...Loop循環(huán)結(jié)構(gòu)分析:將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制采用連除2取余數(shù)的方法,即將十進(jìn)制數(shù)除以2取余數(shù),直到商為0,然后所得的余數(shù)即為二進(jìn)制數(shù)各位的數(shù)碼,從右到左排列,第一次除2的余數(shù)在最右邊。算法設(shè)計(jì)如下:用變量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)第22頁/共49頁將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制的程序如下:
PrivateSubForm_Click()DimDecAsInteger'表示十進(jìn)制數(shù)
DimBinAsString'轉(zhuǎn)換為二進(jìn)制表示
DimResAsIntegerDec=Val(InputBox("輸入一個(gè)十進(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)第23頁/共49頁6.4.1While…Wend語句使用格式如下:
While<條件><循環(huán)塊>Wend
說明:該語句的功能與DoWhile<條件>….Loop實(shí)現(xiàn)的循環(huán)完全相同。6.4While…Wend語句第24頁/共49頁
6.5.1循環(huán)的嵌套——多重循環(huán)結(jié)構(gòu)
如果在一個(gè)循環(huán)內(nèi)完整地包含另一個(gè)循環(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)第25頁/共49頁(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)第26頁/共49頁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)第27頁/共49頁
Fori=1To10Forj=1To20… Nexti NextjFori=1To10Fori=1To20… Nexti Nexti下面是不正確的嵌套
6.5嵌套結(jié)構(gòu)第28頁/共49頁
PrivateSubForm_Click()DimiAsInteger,jAsIntegerFori=1To3Print"i=";iForj=1To3PrintTab;"j=";jNextNextEndSub循環(huán)嵌套的執(zhí)行流程:6.5嵌套結(jié)構(gòu)第29頁/共49頁6.5嵌套結(jié)構(gòu)PrivateSubCommand1_Click()Dimx%,a%,y%Forx=1to2a=0Fory=1tox+1a=a+1NextyPrinta;NextxEndSub程序運(yùn)行后,單擊命令按鈕,在窗體上顯示的值是
(23)第30頁/共49頁6.5嵌套結(jié)構(gòu)Exit
Do和ExitFor語句在循環(huán)嵌套時(shí)的作用第31頁/共49頁6.5嵌套結(jié)構(gòu)第32頁/共49頁例:打印九九乘法表.
Fori=1To9Forj=1To9se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9+1);se;NextjPicture1.PrintNexti6.5嵌套結(jié)構(gòu)第33頁/共49頁6.5嵌套結(jié)構(gòu)例:
編一程序,顯示出所有的水仙花數(shù)。所謂水仙花數(shù),是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)字本身。例如,153是水仙花數(shù),因?yàn)椋旱?4頁/共49頁6.5嵌套結(jié)構(gòu)PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerDimnAsIntegerFori=1To9'i表示百位上的數(shù)
Forj=0To9'j表示十位上的數(shù)
Fork=0To9'k表示個(gè)位上的數(shù)
n=i*100+j*10+kIfi^3+j^3+k^3=nThenPrintnNextkNextjNextiEndSub解法一:第35頁/共49頁6.5嵌套結(jié)構(gòu)解法二:PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerDimnAsIntegerForn=100To999i=n\100'得到百位上的數(shù)字
j=n\10-i*10'得到十位上的數(shù)字
k=nMod10'得到個(gè)位上的數(shù)字
Ifi^3+j^3+k^3=nThenPrintnNextnEndSub第36頁/共49頁6.5.2循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)的嵌套
在循環(huán)結(jié)構(gòu)中可以完整嵌套選擇結(jié)構(gòu),即整個(gè)選擇結(jié)構(gòu)都屬于循環(huán)體。在選擇結(jié)構(gòu)中嵌套循環(huán)結(jié)構(gòu)時(shí),則要求整個(gè)循環(huán)結(jié)構(gòu)必須完整地嵌套在一個(gè)分支內(nèi),一個(gè)循環(huán)結(jié)構(gòu)不允許出現(xiàn)在兩個(gè)或兩個(gè)以上的分支內(nèi)。6.5嵌套結(jié)構(gòu)第37頁/共49頁(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)第38頁/共49頁6.6強(qiáng)制退出循環(huán)6.6.1用Exitfor語句強(qiáng)制退出For循環(huán)
ExitFor語句可以使程序從For循環(huán)中退出來,轉(zhuǎn)到Next語句后面的程序繼續(xù)執(zhí)行,而不必等到循環(huán)變量到達(dá)終值時(shí)才退出來。注意:在循環(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為何值時(shí),9x+y=300成立。第39頁/共49頁6.6強(qiáng)制退出循環(huán)程序代碼:OptionExplicitPrivateSubForm_Click()DimxasIntegerDimyasIntegerForx=1to30Y=100-xIf9*x+y=300thenExitforNextxPrint“母雞有”;x;”只”,”小雞有”;y;”只”
EndSub第40頁/共49頁6.6強(qiáng)制退出循環(huán)6.6.2用ExitDo語句強(qiáng)制退出Do循環(huán)ExitDo語句可以使程序從Do循環(huán)中退出來,轉(zhuǎn)到Loop語句后面的程序繼續(xù)執(zhí)行,而不必等到循環(huán)達(dá)到結(jié)束條件時(shí)才退出來。注意:在循環(huán)體外面,不可以使用ExitDo語句,而且ExitDo通常與IF語句一起使用。例:用DoWhile循環(huán)改寫上例程序,體會(huì)ExitDo語句的作用第41頁/共49頁6.6強(qiáng)制退出循環(huán)程序代碼:OptionExplicitPrivateSubForm_Click()DimxasIntegerDimyasIntegerX=1Dowhilex<=30Y=100-xIf9*x+y=300thenExitDoLoopPrint“母雞有”;x;”只”,”小雞有”;y;”只”
EndSub第42頁/共49頁6.7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit3 It's Too Expensive(說課稿)-2024-2025學(xué)年北師大版(一起)英語四年級上冊001
- 2025【各行各業(yè)合同協(xié)議模板】【各行各業(yè)合同協(xié)議模板】商鋪轉(zhuǎn)讓協(xié)議
- 2025常用版工程工程合同樣式
- 2023八年級英語下冊 Module 9 Friendship Unit 1 Could I ask if you've mentioned this to her第二課時(shí)說課稿 (新版)外研版
- 2025墻體廣告制作發(fā)布合同
- 2025國際貿(mào)易合同樣本參考
- Unit 3 My weekend plan Part A Let's talk Let's learn大單元整體說課稿表格式-2024-2025學(xué)年人教PEP版英語六年級上冊
- 9 生活離不開規(guī)則說課稿-2023-2024學(xué)年道德與法治三年級下冊統(tǒng)編版
- 3 《百合花》 (說課稿)-2024-2025學(xué)年高一語文同步說課稿與知識梳理(統(tǒng)編版必修上冊)
- Unit 4 My home PB Let's learn (說課稿)-2024-2025學(xué)年人教PEP版英語四年級上冊
- 淺談堤防施工前怎么做好碾壓試驗(yàn)
- 銀行內(nèi)部舉報(bào)管理規(guī)定
- 平面幾何強(qiáng)化訓(xùn)練題集:初中分冊數(shù)學(xué)練習(xí)題
- 項(xiàng)目獎(jiǎng)金分配獎(jiǎng)勵(lì)制度和方案完整版
- 支氣管鏡試題
- 陰道鏡幻燈課件
- 現(xiàn)代漢語詞匯學(xué)精選課件
- PCB行業(yè)安全生產(chǎn)常見隱患及防范措施課件
- 上海音樂學(xué)院 樂理試題
- SAP中國客戶名單
- WZCK-20系列微機(jī)直流監(jiān)控裝置使用說明書(v1.02)
評論
0/150
提交評論