




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
演示文稿控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)目前一頁\總數(shù)四十八頁\編于二點(diǎn)(優(yōu)選)控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)目前二頁\總數(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è)計(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形式目前四頁\總數(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步長(zhǎng)]
語句塊
[ExitFor]
語句塊Next[循環(huán)變量]循環(huán)體>=0循環(huán)變量<=終值<0循環(huán)變量>=終值=1可省略
步長(zhǎng)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)時(shí)的循環(huán)變量的值Fori=1to10step1s=s+iNextiPrintiFori=-1to-10step-1s=s+iNextiPrinti目前八頁\總數(shù)四十八頁\編于二點(diǎn)6.2For...Next循環(huán)結(jié)構(gòu)注意對(duì)于For…Next語句來說,一旦進(jìn)入循環(huán),其“終止值”和“增量”便不會(huì)再改變了。PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerj=10:k=1Fori=1TojStepkPrintij=j-1k=k+1NextPrintj,kEndSub目前九頁\總數(shù)四十八頁\編于二點(diǎn)練習(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)目前十頁\總數(shù)四十八頁\編于二點(diǎn)例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)目前十一頁\總數(shù)四十八頁\編于二點(diǎn)前測(cè)型:
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'計(jì)算完畢,變量a的值即為所求EndSub例:使用DoWhile…Loop循環(huán)語句計(jì)算1+2+3+…+100的值目前十三頁\總數(shù)四十八頁\編于二點(diǎn)后測(cè)型:
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)語句計(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目前十五頁\總數(shù)四十八頁\編于二點(diǎn)前測(cè)型:
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)例:計(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目前十七頁\總數(shù)四十八頁\編于二點(diǎn)后測(cè)型:
Do
語句塊
[ExitDo]
語句塊
LoopUntil<條件>6.3Do...Loop循環(huán)結(jié)構(gòu)目前十八頁\總數(shù)四十八頁\編于二點(diǎn)例:使用級(jí)數(shù)求π的值。根據(jù)下式,計(jì)算圓周率π的近似值,當(dāng)計(jì)算到絕對(duì)值小于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)目前十九頁\總數(shù)四十八頁\編于二點(diǎn)PrivateSubcmdPi_Click()DimaAsSingle'變量a保存通項(xiàng)之和
DimmAsSingle'變量m保存通項(xiàng)的絕對(duì)值
DimsAsInteger'變量s產(chǎn)生通項(xiàng)的符號(hào)
DimiAsInteger'變量i產(chǎn)生通項(xiàng)的分母
s=1'第一項(xiàng)符號(hào)為正
i=1'第一項(xiàng)為1Do'開始循環(huán)
m=1/i'計(jì)算通項(xiàng)的絕對(duì)值
a=a+s*m'總和加上一個(gè)通項(xiàng)
i=i+2'產(chǎn)生下一個(gè)通項(xiàng)分母
s=-s'輪流轉(zhuǎn)換通項(xiàng)的正負(fù)號(hào)
LoopUntilm<0.0001'測(cè)試是否滿足精度要求
Text1.Text=a*4'輸出計(jì)算結(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:計(jì)算n!目前二十一頁\總數(shù)四十八頁\編于二點(diǎn)本節(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)目前二十二頁\總數(shù)四十八頁\編于二點(diǎn)
思考:將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制。
算法流程圖6.3Do...Loop循環(huán)結(jié)構(gòu)
用Do...Loop循環(huán)的五種形式分別完成目前二十三頁\總數(shù)四十八頁\編于二點(diǎn)
將一個(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)目前二十四頁\總數(shù)四十八頁\編于二點(diǎn)將一個(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)目前二十五頁\總數(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)
如果在一個(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)目前二十七頁\總數(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對(duì)于循環(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í)的作用目前三十三頁\總數(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ù),是指一個(gè)三位數(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表示個(gè)位上的數(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'得到個(gè)位上的數(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),即整個(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)目前三十九頁\總數(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á)終值時(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成立。目前四十一頁\總數(shù)四十八頁\編于二點(diǎn)6.6強(qiáng)制退出循環(huán)程序代碼:OptionExplicitPrivateSubForm_Click()DimxasIntegerDim
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)租賃管理合同協(xié)議
- 專柜裝修合同裝修合同協(xié)議
- 房屋轉(zhuǎn)讓協(xié)議合同書
- 聘請(qǐng)勞務(wù)合同
- 安置房買賣協(xié)議合同
- 小學(xué)六英語試卷答案
- 賣魚銷售合同范本
- 個(gè)人一周工作計(jì)劃
- 冷凍品供貨合同范本
- 三年級(jí)下冊(cè)音樂教案
- 外科病人體液失衡-課件
- 醫(yī)學(xué)課件-耳穴壓豆教學(xué)課件
- 生物氧化 Biological Oxidation課件
- 電力拖動(dòng)自動(dòng)控制系統(tǒng)-運(yùn)動(dòng)控制系統(tǒng)(第5版)習(xí)題答案
- 贛美版四年級(jí)美術(shù)下冊(cè)全冊(cè)課件匯總
- 工會(huì)專業(yè)知識(shí)考試題庫
- 2023年山東水利職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試筆試題庫及答案解析
- 小學(xué)數(shù)學(xué)最新人教版三年級(jí)下冊(cè)第一單元《位置與方向(一)》單元測(cè)試題(答案解析)
- 《英語閱讀4》課程教案(下)
- 大班數(shù)學(xué)活動(dòng)有趣的鐘表
- 剪映入門教程PPT
評(píng)論
0/150
提交評(píng)論