演示文稿控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計_第1頁
演示文稿控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計_第2頁
演示文稿控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計_第3頁
演示文稿控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計_第4頁
演示文稿控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

演示文稿控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計目前一頁\總數(shù)四十八頁\編于二點(優(yōu)選)控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計目前二頁\總數(shù)四十八頁\編于二點

本章內(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ù)四十八頁\編于二點6.1概述在VisualBasic程序設(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ù)四十八頁\編于二點打印九九乘法表

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ù)四十八頁\編于二點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ù)四十八頁\編于二點循環(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ù)四十八頁\編于二點6.2For...Next循環(huán)結(jié)構(gòu)注意跳出FOR循環(huán)時的循環(huán)變量的值Fori=1to10step1s=s+iNextiPrintiFori=-1to-10step-1s=s+iNextiPrinti目前八頁\總數(shù)四十八頁\編于二點6.2For...Next循環(huán)結(jié)構(gòu)注意對于For…Next語句來說,一旦進入循環(huán),其“終止值”和“增量”便不會再改變了。PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerj=10:k=1Fori=1TojStepkPrintij=j-1k=k+1NextPrintj,kEndSub目前九頁\總數(shù)四十八頁\編于二點練習(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ù)四十八頁\編于二點例6.7編程計算:S=1+2+3+…+100DimS%,I%S=0'累加前變量S為0ForI=1to100S=S+INextIPrint"S=",S當I<=100I=I+1打印SS=0,I=1S=S+I例6.7的算法流程圖6.2For...Next循環(huán)結(jié)構(gòu)目前十一頁\總數(shù)四十八頁\編于二點前測型:

DoWhile<條件>

語句塊

[ExitDo]

語句塊

LoopDo…Loop循環(huán)語句使用形式6.3Do...Loop循環(huán)結(jié)構(gòu)目前十二頁\總數(shù)四十八頁\編于二點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ù)四十八頁\編于二點后測型:

Do

語句塊

[ExitDo]

語句塊

LoopWhile<條件>6.3Do...Loop循環(huán)結(jié)構(gòu)目前十四頁\總數(shù)四十八頁\編于二點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ù)四十八頁\編于二點前測型:

DoUntil<條件>

語句塊

[ExitDo]

語句塊

LoopDo…Loop循環(huán)語句使用形式6.3Do...Loop循環(huán)結(jié)構(gòu)目前十六頁\總數(shù)四十八頁\編于二點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ù)四十八頁\編于二點后測型:

Do

語句塊

[ExitDo]

語句塊

LoopUntil<條件>6.3Do...Loop循環(huán)結(jié)構(gòu)目前十八頁\總數(shù)四十八頁\編于二點例:使用級數(shù)求π的值。根據(jù)下式,計算圓周率π的近似值,當計算到絕對值小于0.0001的通項時,認為滿足精度要求,停止計算。π/4=1-1/3+1/5-1/7+…+(-1)n+11/2n-1+…6.3Do...Loop循環(huán)結(jié)構(gòu)目前十九頁\總數(shù)四十八頁\編于二點PrivateSubcmdPi_Click()DimaAsSingle'變量a保存通項之和

DimmAsSingle'變量m保存通項的絕對值

DimsAsInteger'變量s產(chǎn)生通項的符號

DimiAsInteger'變量i產(chǎn)生通項的分母

s=1'第一項符號為正

i=1'第一項為1Do'開始循環(huán)

m=1/i'計算通項的絕對值

a=a+s*m'總和加上一個通項

i=i+2'產(chǎn)生下一個通項分母

s=-s'輪流轉(zhuǎn)換通項的正負號

LoopUntilm<0.0001'測試是否滿足精度要求

Text1.Text=a*4'輸出計算結(jié)果EndSub6.3Do...Loop循環(huán)結(jié)構(gòu)目前二十頁\總數(shù)四十八頁\編于二點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ù)四十八頁\編于二點本節(jié)小結(jié):(1)當使用While<條件>構(gòu)成循環(huán)時,當條件為“真”,則反復(fù)執(zhí)行循環(huán)體,當條件為“假”,則退出循環(huán)。(2)當使用Until<條件>構(gòu)成循環(huán)時,當條件為“假”,則反復(fù)執(zhí)行循環(huán)體,直到條件成立,即為“真”時,則退出循環(huán)。

(3)在循環(huán)體內(nèi)一般應(yīng)有一個專門用來改變條件表達式中變量的語句,以使隨著循環(huán)的執(zhí)行,條件趨于不成立(或成立),最后達到退出循環(huán)。(4)語句ExitDo的作用是退出它所在的循環(huán)結(jié)構(gòu),它只能用在DO/Loop結(jié)構(gòu)中,并且常常是同選擇結(jié)構(gòu)一起出現(xiàn)在循環(huán)結(jié)構(gòu)中,用來實現(xiàn)當滿足某一條件時提前退出循環(huán)。6.3Do...Loop循環(huán)結(jié)構(gòu)目前二十二頁\總數(shù)四十八頁\編于二點

思考:將一個十進制數(shù)轉(zhuǎn)換成二進制。

算法流程圖6.3Do...Loop循環(huán)結(jié)構(gòu)

用Do...Loop循環(huán)的五種形式分別完成目前二十三頁\總數(shù)四十八頁\編于二點

將一個十進制數(shù)轉(zhuǎn)換成二進制。

算法流程圖6.3Do...Loop循環(huán)結(jié)構(gòu)分析:將一個十進制數(shù)轉(zhuǎn)換成二進制采用連除2取余數(shù)的方法,即將十進制數(shù)除以2取余數(shù),直到商為0,然后所得的余數(shù)即為二進制數(shù)各位的數(shù)碼,從右到左排列,第一次除2的余數(shù)在最右邊。算法設(shè)計如下:用變量Dec表示十進制數(shù),Bin表示轉(zhuǎn)換所得的二進制數(shù)字符串。(1)

輸入十進制Dec(2)

Dec除以2得余數(shù)Res,商又賦值給Dec;讓Bin=Res&Bin(3)

若Dec=0,則算法結(jié)束;否則執(zhí)行(2)目前二十四頁\總數(shù)四十八頁\編于二點將一個十進制數(shù)轉(zhuǎn)換成二進制的程序如下:

PrivateSubForm_Click()DimDecAsInteger'表示十進制數(shù)

DimBinAsString'轉(zhuǎn)換為二進制表示

DimResAsIntegerDec=Val(InputBox("輸入一個十進制數(shù)Dec=?"))Print"十進制數(shù):";DecDoRes=DecMod2'求出除以2的余數(shù)

Bin=Res&BinDec=Dec\2LoopUntilDec=0Print"轉(zhuǎn)換為二進制數(shù)為:";BinEndSub

6.3Do...Loop循環(huán)結(jié)構(gòu)目前二十五頁\總數(shù)四十八頁\編于二點6.4.1While…Wend語句使用格式如下:

While<條件><循環(huán)塊>Wend

說明:該語句的功能與DoWhile<條件>….Loop實現(xiàn)的循環(huán)完全相同。6.4While…Wend語句目前二十六頁\總數(shù)四十八頁\編于二點

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ù)四十八頁\編于二點(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ù)四十八頁\編于二點Fori=1To10Forj=1To20… NextjNextiFori=1To10…NextiFori=1To10…Nexti對于循環(huán)的嵌套,要注意以下事項:

(1)內(nèi)循環(huán)變量與外循環(huán)變量不能同名;

(2)外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;下面是正確的嵌套

6.5嵌套結(jié)構(gòu)目前二十九頁\總數(shù)四十八頁\編于二點

Fori=1To10Forj=1To20… Nexti NextjFori=1To10Fori=1To20… Nexti Nexti下面是不正確的嵌套

6.5嵌套結(jié)構(gòu)目前三十頁\總數(shù)四十八頁\編于二點

PrivateSubForm_Click()DimiAsInteger,jAsIntegerFori=1To3Print"i=";iForj=1To3PrintTab;"j=";jNextNextEndSub循環(huán)嵌套的執(zhí)行流程:6.5嵌套結(jié)構(gòu)目前三十一頁\總數(shù)四十八頁\編于二點6.5嵌套結(jié)構(gòu)PrivateSubCommand1_Click()Dimx%,a%,y%Forx=1to2a=0Fory=1tox+1a=a+1NextyPrinta;NextxEndSub程序運行后,單擊命令按鈕,在窗體上顯示的值是

(23)目前三十二頁\總數(shù)四十八頁\編于二點6.5嵌套結(jié)構(gòu)Exit

Do和ExitFor語句在循環(huán)嵌套時的作用目前三十三頁\總數(shù)四十八頁\編于二點6.5嵌套結(jié)構(gòu)目前三十四頁\總數(shù)四十八頁\編于二點例:打印九九乘法表.

Fori=1To9Forj=1To9se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9+1);se;NextjPicture1.PrintNexti6.5嵌套結(jié)構(gòu)目前三十五頁\總數(shù)四十八頁\編于二點6.5嵌套結(jié)構(gòu)例:

編一程序,顯示出所有的水仙花數(shù)。所謂水仙花數(shù),是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)字本身。例如,153是水仙花數(shù),因為:目前三十六頁\總數(shù)四十八頁\編于二點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ù)四十八頁\編于二點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ù)四十八頁\編于二點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ù)四十八頁\編于二點(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ù)四十八頁\編于二點6.6強制退出循環(huán)用Exitfor語句強制退出For循環(huán)

ExitFor語句可以使程序從For循環(huán)中退出來,轉(zhuǎn)到Next語句后面的程序繼續(xù)執(zhí)行,而不必等到循環(huán)變量到達終值時才退出來。注意:在循環(huán)體外面,不可以使用ExitFor語句,而且ExitFor通常與IF語句一起使用。例:用300元買100只雞,母雞9元1只,小雞1元1只,問母雞、小雞各應(yīng)買多少只?分析:設(shè)買母雞x只,則x的變化范圍為1~30只,因為買的母雞只數(shù)不可能超過30只,超過30只就不可能買到100只雞。設(shè)小雞為y只,則y=100-x。下面要做的工作就是求x為何值時,9x+y=300成立。目前四十一頁\總數(shù)四十八頁\編于二點6.6強制退出循環(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論