《Visual Basic程序設(shè)計(jì)案例教程》課件第4章_第1頁
《Visual Basic程序設(shè)計(jì)案例教程》課件第4章_第2頁
《Visual Basic程序設(shè)計(jì)案例教程》課件第4章_第3頁
《Visual Basic程序設(shè)計(jì)案例教程》課件第4章_第4頁
《Visual Basic程序設(shè)計(jì)案例教程》課件第4章_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章程序流程控制

4.1條件測試語句4.2循環(huán)語句習(xí)題

4.1條件測試語句案例1條件語句If…Then…Else

1.學(xué)習(xí)目標(biāo)請編程實(shí)現(xiàn):輸入x的值,計(jì)算y的值。其中:當(dāng)x>6時(shí),y=x+3;當(dāng)x≤6時(shí),y=4x。通過本案例的學(xué)習(xí),掌握If…Then…Else語句的用法。

2.相關(guān)知識

1)If…Then結(jié)構(gòu)

If…Then結(jié)構(gòu)有兩種形式,即單行語句和多行語句。單行語句格式:

If條件表達(dá)式Then語句塊多行語句格式:

If條件表達(dá)式Then語句塊

EndIf其中,條件表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式,也可以是算術(shù)表達(dá)式、字符串表達(dá)式等。程序?qū)⒏鶕?jù)這個(gè)表達(dá)式的值(True或False,如果是數(shù)值表達(dá)式,VisualBasic將一個(gè)為零的數(shù)值在此當(dāng)作False,而任何非零數(shù)值都被看作True)執(zhí)行相應(yīng)的操作。語句功能:若條件表達(dá)式的值為True,則執(zhí)行Then后面的語句。若條件表達(dá)式的值為False,對于單行語句結(jié)構(gòu),程序直接跳到If的下一條語句去繼續(xù)執(zhí)行;對于多行語句結(jié)構(gòu),則轉(zhuǎn)到EndIf之后繼續(xù)執(zhí)行其他語句。其流程如圖4.1所示。圖4.1If…Then語句流程圖在使用單行語句結(jié)構(gòu)時(shí),Then后面只能放置一條語句,若有多條語句,則必須用多行語句格式。語句格式中的“語句塊”可以是一條語句,也可以是多條語句。例如:單行語句

Ifx<yThenx=x+9也可改成多行語句結(jié)構(gòu)形式:

Ifx<yThen

x=x+9

EndIf在多行語句結(jié)構(gòu)形式中,Then關(guān)鍵字后的同一行上不能有任何語句。例如,把多行結(jié)構(gòu)形式改寫如下形式,則會(huì)產(chǎn)生編譯錯(cuò)誤:

Ifx<yThenx=x+9

EndIf為了增加程序代碼的可讀性,建議采用多行語句結(jié)構(gòu)形式。

2)?If…Then…Else結(jié)構(gòu) 語句格式:

If條件表達(dá)式Then

語句塊1

Else語句塊2

EndIf語句功能:對給定的條件表達(dá)式進(jìn)行判斷。若表達(dá)式的值為True,則執(zhí)行語句塊1,執(zhí)行完語句塊1后,程序?qū)⒅苯犹紼ndIf后面繼續(xù)執(zhí)行其他的語句;若表達(dá)式的值為False,則執(zhí)行語句塊2,執(zhí)行完畢后,接著執(zhí)行EndIf后面的語句。其流程如圖4.2所示。圖4.2If…Then…Else語句流程圖例如:

Ifx>0Then

y=2

Else

y=8

EndIf

3.程序?qū)崿F(xiàn)

1)界面設(shè)計(jì)初始界面如圖4.3所示。

2)屬性設(shè)置屬性設(shè)置如表4.1所示。設(shè)置屬性后的界面如圖4.4所示。圖4.3初始界面表4.1屬性設(shè)置圖4.4設(shè)置屬性后的界面

3)編寫代碼代碼編寫如下:

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle

x=Val(Text1.Text)

Ifx>6Then

y=x+3

Else

y=4*x

EndIf

Text2.Text=Str(y)

EndSub運(yùn)行程序,結(jié)果如圖4.5所示。圖4.5輸入x的值,計(jì)算y的值案例2條件語句If…Then…ElseIf

1.學(xué)習(xí)目標(biāo)對所輸入的整數(shù)進(jìn)行判斷,若輸入數(shù)為正數(shù),則顯示“大于零”;若輸入數(shù)為負(fù)數(shù),則顯示“小于零”;否則顯示“等于零”。用If…Then…ElseIf語句實(shí)現(xiàn)。通過本案例的學(xué)習(xí),掌握If…Then…ElseIf語句的用法。

2.相關(guān)知識條件語句If…Then…ElseIf是多重If語句。通過這種形式,可以完成對兩個(gè)以上條件的測試。根據(jù)實(shí)際條件只執(zhí)行其中的某一個(gè)語句塊。語句格式:

If條件表達(dá)式1Then語句塊1

ElseIf條件表達(dá)式2Then語句塊2

ElseIf條件表達(dá)式nThen語句塊n

Else

語句塊n+1

EndIf語句功能:先對給定的條件表達(dá)式1進(jìn)行測試,若測試結(jié)果為True,則執(zhí)行語句塊1,執(zhí)行完后,轉(zhuǎn)到EndIf后面繼續(xù)執(zhí)行;若測試結(jié)果為False,則繼續(xù)對條件表達(dá)式2進(jìn)行測試,若測試結(jié)果為True,則執(zhí)行語句塊2,否則繼續(xù)對下一個(gè)條件表達(dá)式進(jìn)行測試,直到測試到某一個(gè)條件表達(dá)式的測試結(jié)果為True,則執(zhí)行該表達(dá)式后面的語句塊,然后轉(zhuǎn)至EndIf后面繼續(xù)執(zhí)行。如果前面所有條件表達(dá)式的測試結(jié)果均為False,則執(zhí)行Else后面的語句塊。其流程如圖4.6所示。如果有多個(gè)條件同時(shí)成立,則程序只執(zhí)行最先遇到的條件表達(dá)式下面的語句塊。圖4.6多重If語句流程圖

3.程序?qū)崿F(xiàn)

1)界面設(shè)計(jì)初始界面如圖4.7所示。

2)屬性設(shè)置屬性設(shè)置如表4.2所示。設(shè)置屬性后的界面如圖4.8所示。圖4.7初始界面表4.2屬性設(shè)置圖4.8設(shè)置屬性后的界面

3)編寫代碼代碼編寫如下:

PrivateSubCommand1_Click()

Dims1AsString,s2AsString

DimnAsInteger

s1=Text1.Text

n=Val(s1)

Ifn>0Then

s2="大于零"

ElseIfn<0Then

s2="小于零"

Else

s2="等于零"

EndIf

Text2.Text=s2

EndSub運(yùn)行程序,結(jié)果如圖4.9所示。圖4.9判斷輸入的整數(shù)是正數(shù)、負(fù)數(shù)還是零

4.應(yīng)用擴(kuò)展嵌套結(jié)構(gòu)是在一些基本語句結(jié)構(gòu)的基礎(chǔ)上,將一個(gè)控制結(jié)構(gòu)放在另一個(gè)控制結(jié)構(gòu)內(nèi)而形成的結(jié)構(gòu)。這兩種控制結(jié)構(gòu)可以相同,也可以不同。例如:

If<條件1>Then

If<條件2>Then

Else

EndIf

Else

If<條件3>Then

Else

EndIf

EndIf例如,以下為If語句嵌套形式中的一種,它是將If…Then…EndIf與If…Then…Else…EndIf兩種語句結(jié)構(gòu)嵌套在一起的一種形式。

If年齡<40Then

If性別="男"Then

MsgBox"可以參加3000米長跑"

Else

MsgBox"可以參加800米長跑"

EndIf

EndIf在使用這樣的嵌套形式時(shí),應(yīng)該注意嵌套的層次問題,絕對不允許出現(xiàn)層次交叉的現(xiàn)象。案例3條件語句SelectCase

1.學(xué)習(xí)目標(biāo)用SelectCase語句實(shí)現(xiàn)計(jì)算公民全月應(yīng)納個(gè)人所得稅。這里將個(gè)人所得稅具體計(jì)算問題理想化,假設(shè)以1600元作為標(biāo)準(zhǔn),每月收入額減除費(fèi)用1600元后的余額不同則稅率不同,余額不超過500元的部分的稅率為5%,余額在500元(不包括500元)至2000元的部分的稅率為10%,余額在2000元(不包括2000元)至5000元的部分的稅率為15%,余額在5000元(不包括5000元)至20?000元的部分的稅率為20%,余額在20?000元(不包括20?000元)至40?000元的部分的稅率為25%,余額在40?000元(不包括40000元)至60000元的部分的稅率為30%,余額在60000元(不包括60000元)至80000元的部分的稅率為35%,余額在80000元(不包括80000元)至100000元的部分的稅率為40%,余額超過100000元的部分的稅率為45%。通過本案例的學(xué)習(xí),掌握SelectCase語句的用法。

2.相關(guān)知識

SelectCase的語句格式:

SelectCase測試表達(dá)式

Case表達(dá)式列表1語句塊1

Case表達(dá)式列表n語句塊n

CaseElse語句塊n+1

EndSelect語句功能:先求出測試表達(dá)式的值,然后將求得的值分別與各Case子句的表達(dá)式列表中的值進(jìn)行比較。如果相匹配,則執(zhí)行該Case語句后面的語句塊,執(zhí)行完畢后,程序?qū)⒅苯犹紼ndSelect后面繼續(xù)執(zhí)行其他語句;若沒有一個(gè)值與測試表達(dá)式的值匹配,則執(zhí)行CaseElse后面的語句塊,當(dāng)該語句塊執(zhí)行完畢后,程序也將直接跳到EndSelect后面繼續(xù)執(zhí)行其他語句。語句說明:“測試表達(dá)式”可以是數(shù)值表達(dá)式或字符串表達(dá)式?!氨磉_(dá)式列表”可以有三種形式。①表達(dá)式[,表達(dá)式]…:用來表示一些具體的數(shù)值,多個(gè)數(shù)值間用逗號分隔開。例如:Case1,2,3,4,5。②表達(dá)式1To表達(dá)式2:這種表達(dá)式用來指定一個(gè)取值范圍,將較小的值放在To前面,較大的值放在To后面。例如,Case6To10,Case"a"To"z"。③Is<關(guān)系運(yùn)算符><表達(dá)式>:通過Is與關(guān)系運(yùn)算符結(jié)合,用來表示一個(gè)數(shù)值范圍。注意,此時(shí)關(guān)系表達(dá)式只能是簡單條件,而不能是用邏輯運(yùn)算符將兩個(gè)(或多個(gè))簡單條件表達(dá)式連接到一起。例如:

CaseIs>85是正確的,而CaseIs>85AndIs<100則是錯(cuò)誤的。上述三種形式還可以組合起來使用。例如:

Case20,30,40To50,Is>60這種組合方式表示只要測試表達(dá)式的值與Case后面表達(dá)式中任何一個(gè)值相匹配,則執(zhí)行該Case語句對應(yīng)的語句塊。

3.程序?qū)崿F(xiàn)

1)界面設(shè)計(jì)初始界面如圖4.10所示。

2)屬性設(shè)置屬性設(shè)置如表4.3所示。設(shè)置屬性后的界面如圖4.11所示。圖4.10初始界面表4.3屬性設(shè)置圖4.11設(shè)置屬性后的界面

3)編寫代碼代碼編寫如下:

PrivateSubCommand1_Click()

DimsalaryAsSingle,rateAsSingle,taxesAsSingle

DimsAsString,nAsInteger

s=InputBox("請輸入該公民的月收入:","月收入輸入窗口")

salary=Val(s)

If(salary-1600)<=0Then

MsgBox"不需交納個(gè)人所得稅",,"個(gè)人所得稅"

Else

n=Int((salary-1600)/100+0.9999)

SelectCasen

Case1,2,3,4,5:rate=0.05

Case6To20:rate=0.1

Case21To50:rate=0.15

Case51To200:rate=0.2

Case201To400:rate=0.25

Case401To600:rate=0.3

Case601To800:rate=0.35

Case801To1000:rate=0.4

CaseIs>1000:rate=0.45

EndSelect

taxes=(salary-1600)*rate

MsgBox"應(yīng)交個(gè)人所得稅金額為:"&taxes,,"個(gè)人所得稅"

EndIf

EndSub運(yùn)行程序,結(jié)果如圖4.12所示。圖4.12計(jì)算個(gè)人所得稅

4.應(yīng)用擴(kuò)展

Select語句可以實(shí)現(xiàn)嵌套,除了自身的嵌套以外,還可以同其他語句一起實(shí)現(xiàn)更為復(fù)雜的語句嵌套。無論是哪種形式的嵌套,它們都要遵循同樣的規(guī)則,即不允許出現(xiàn)結(jié)構(gòu)之間的交叉重疊。在實(shí)際應(yīng)用中,SelectCase語句同If語句以及后面將要介紹的循環(huán)控制語句的嵌套形式更為常見。例如:If<條件1>Then

…SelectCase…Case…If<條件2>Then

…Else

…EndIf

…Case…

…EndSelect

…EndIf4.2循環(huán)語句案例4用For循環(huán)語句實(shí)現(xiàn)累加求和

1.學(xué)習(xí)目標(biāo)用For…Next循環(huán)結(jié)構(gòu)實(shí)現(xiàn)求和sum,其中sum=1+2+3+…+100。通過本案例的學(xué)習(xí),掌握For…Next循環(huán)結(jié)構(gòu)的用法。

2.相關(guān)知識

VisualBasic支持的循環(huán)控制語句有For…Next、Do…Loop和While…Wend。如果知道了循環(huán)的執(zhí)行次數(shù),則可以使用For…Next循環(huán)結(jié)構(gòu)。語句格式:

For循環(huán)變量=初值To終值[Step步長]語句塊1

[ExitFor]語句塊2

Next[循環(huán)變量]語句功能:根據(jù)循環(huán)變量給定的次數(shù)重復(fù)執(zhí)行循環(huán)體語句,直到循環(huán)變量的值達(dá)到或超過終值為止。語句說明:

(1)循環(huán)變量、初值、終值、步長都是整型數(shù)據(jù)。其中,循環(huán)變量決定循環(huán)執(zhí)行的次數(shù);步長的值可正可負(fù),用于決定每循環(huán)一次后循環(huán)變量遞增或遞減的數(shù)值。Step子句可有可無,若無,則循環(huán)變量每循環(huán)一次,其值自動(dòng)增加1;若有,則根據(jù)Step子句提供的值進(jìn)行遞增或遞減。

(2)?ExitFor子句是可選項(xiàng),其功能是提前退出循環(huán)控制結(jié)構(gòu)。當(dāng)執(zhí)行For…Next循環(huán)控制語句時(shí),VisualBasic的工作過程如下:

(1)設(shè)置循環(huán)變量的值為初值。

(2)如果步長值為正,則測試循環(huán)變量的值是否大于終值,若是,則退出循環(huán);如果步長值為負(fù),則測試循環(huán)變量是否小于終值,若是,則退出循環(huán)。

(3)如果循環(huán)變量的值還未大于終值(當(dāng)步長值為正時(shí)),或者循環(huán)變量的值還未小于終值(當(dāng)步長值為負(fù)時(shí)),則執(zhí)行循環(huán)體內(nèi)的語句。

(4)按步長變量指定的值遞增(遞減)循環(huán)變量,如果沒有指定步長,則循環(huán)變量遞增1。

(5)重復(fù)步驟(2)至步驟(4)。其整個(gè)流程如圖4.13所示。圖4.13步長值為正時(shí)For…Next循環(huán)結(jié)構(gòu)的流程圖

3.程序?qū)崿F(xiàn)

1)界面設(shè)計(jì)初始界面如圖4.14所示。

2)屬性設(shè)置屬性設(shè)置如表4.4所示。設(shè)置屬性后的界面如圖4.15所示。圖4.14初始界面表4.4屬性設(shè)置圖4.15設(shè)置屬性后的界面

3)編寫代碼代碼編寫如下:

PrivateSubCommand1_Click()

DimsumAsInteger,iAsInteger

sum=0'累加器初值置為0

Fori=1To100

sum=sum+i

Nexti

Label2.Caption=Str(sum)

EndSub運(yùn)行程序,結(jié)果如圖4.16所示。圖4.16用For…Next循環(huán)結(jié)構(gòu)實(shí)現(xiàn)1+2+3+…+100

4.思考

(1)如果要實(shí)現(xiàn)sum=1+2+3+…+10,則應(yīng)怎樣修改程序?

(2)如果要實(shí)現(xiàn)sum=30+31+32+…+50,則應(yīng)怎樣修改程序?

(3)如果將Label2.Caption=Str(sum)中的sum寫成sam,即Label2.Caption=Str(sam),則運(yùn)行程序后,Label2的Caption會(huì)變成什么?是否可以用強(qiáng)制變量聲明來避免這種錯(cuò)誤?案例5用For循環(huán)語句實(shí)現(xiàn)累乘求積

1.學(xué)習(xí)目標(biāo)用For…Next循環(huán)結(jié)構(gòu)實(shí)現(xiàn)求階乘n!。通過本案例的學(xué)習(xí),掌握用For…Next循環(huán)結(jié)構(gòu)實(shí)現(xiàn)累乘求積。

2.程序?qū)崿F(xiàn)

1)界面設(shè)計(jì)初始界面如圖4.17所示。

2)屬性設(shè)置屬性設(shè)置如表4.5所示。設(shè)置屬性后的界面如圖4.18所示。圖4.17初始界面表4.5屬性設(shè)置圖4.18設(shè)置屬性后的界面

3)編寫代碼代碼編寫如下:

PrivateSubCommand1_Click()

DimnAsInteger,iAsInteger

DimresultAsLong

result=1'累乘,初值置為1

n=CInt(Text1.Text)

Ifn<=0Then

Label2.Caption="請輸入正整數(shù)!"

ExitSub'結(jié)束過程

EndIf

Fori=1Ton

result=result*i

Nexti

Label2.Caption=Str(n)+"!="+Str(result)

EndSub運(yùn)行程序,結(jié)果如圖4.19所示。圖4.19用For…Next循環(huán)結(jié)構(gòu)實(shí)現(xiàn)求階乘n!

3.思考

(1)如果將result=1寫成result=0,則運(yùn)行程序后,Label2的Caption會(huì)變成什么?

(2)程序運(yùn)行后,如果輸入的n<=0,則①ExitSub②End(即將ExitSub改寫成End)兩語句中的哪句會(huì)結(jié)束程序的運(yùn)行?哪句會(huì)結(jié)束本次事件過程,等待下一次事件過程?案例6Do…Loop循環(huán)結(jié)構(gòu)

1.學(xué)習(xí)目標(biāo)用Do…Loop循環(huán)結(jié)構(gòu)實(shí)現(xiàn)求和sum=1+2+3+…+100。通過本案例的學(xué)習(xí),掌握Do…Loop循環(huán)結(jié)構(gòu)的用法。

2.相關(guān)知識

Do…Loop循環(huán)結(jié)構(gòu)可用于循環(huán)次數(shù)不確定的情況,也可用于循環(huán)次數(shù)確定的情況。其語句格式有如下兩種。語句格式1:

Do[While|Until條件]

[語句塊1]

[ExitDo]

[語句塊2]

Loop語句格式2:

Do

[語句塊1]

[ExitDo]

[語句塊2]

Loop[While|Until條件]語句功能:

(1)格式1實(shí)現(xiàn)的功能是:當(dāng)指定的循環(huán)條件為True或在指定的循環(huán)結(jié)束條件變?yōu)門rue之前,重復(fù)執(zhí)行語句塊組成的循環(huán)體。進(jìn)入循環(huán)體時(shí),如果循環(huán)條件不成立或者循環(huán)結(jié)束條件成立,則不再執(zhí)行循環(huán)體的語句塊。

(2)格式2實(shí)現(xiàn)的功能是:該語句先執(zhí)行循環(huán)體,然后測試循環(huán)條件或循環(huán)終止條件,決定是否繼續(xù)循環(huán)。因此,這種結(jié)構(gòu)的語句至少執(zhí)行一次循環(huán)體。語句說明:

(1)?While|Until兩者同時(shí)只能有一個(gè)出現(xiàn)。選擇While時(shí),表示當(dāng)條件表達(dá)式值為True時(shí),開始執(zhí)行循環(huán)體內(nèi)的語句行;選擇Until時(shí),表示只要條件表達(dá)式值不為True,就一直執(zhí)行循環(huán)體內(nèi)的語句行。

(2)?ExitDo為可選項(xiàng),用來強(qiáng)制退出循環(huán)體。

(3)格式1是先測試條件表達(dá)式,再根據(jù)測試值決定是否執(zhí)行循環(huán)體語句。格式2是先執(zhí)行循環(huán)體語句,后測試條件表達(dá)式的值,再根據(jù)測試值決定是否繼續(xù)執(zhí)行。Do…Loop循環(huán)結(jié)構(gòu)的流程如圖4.20所示。從圖4.20(a)、(b)可以很清楚地看到兩者的區(qū)別。其中,圖(a)表示語句格式1;圖(b)表示語句格式2。圖4.20Do…Loop循環(huán)結(jié)構(gòu)的流程圖

3.程序?qū)崿F(xiàn)

1)界面設(shè)計(jì)初始界面如圖4.21所示。

2)屬性設(shè)置屬性設(shè)置如表4.6所示。設(shè)置屬性后的界面如圖4.22所示。圖4.21初始界面表4.6屬性設(shè)置圖4.22設(shè)置屬性后的界面

3)編寫代碼代碼編寫有如下兩種方法。方法一:采用當(dāng)型循環(huán)DoWhile…Loop。

PrivateSubCommand1_Click()

DimiAsInteger,sumAsInteger

i=1 '計(jì)數(shù)器初值置為1

sum=0 '累加器初值置為0

DoWhilei<=100'當(dāng)型循環(huán)

sum=sum+i

i=i+1 '每次循環(huán)變量加1

Loop

Label2.Caption=Str(sum)

EndSub方法二:采用直到型循環(huán)DoUntil…Loop。

PrivateSubCommand1_Click()

DimiAsInteger,sumAsInteger

i=1 '計(jì)數(shù)器初值置為1

sum=0 '累加器初值置為0

DoUntili>100

sum=sum+i

i=i+1

Loop

Label2.Caption=Str(sum)

EndSub運(yùn)行程序,結(jié)果如圖4.23所示。圖4.23求1到100之和

4.思考本案例的代碼中,如果去掉i=i+1,則運(yùn)行結(jié)果是什么?案例7While…Wend循環(huán)結(jié)構(gòu)

1.學(xué)習(xí)目標(biāo)提示用戶輸入數(shù)值型數(shù)據(jù),并對所輸入的正數(shù)進(jìn)行求和。用While…Wend循環(huán)結(jié)構(gòu)實(shí)現(xiàn)。通過本案例的學(xué)習(xí),掌握While…Wend循環(huán)結(jié)構(gòu)的用法。

2.相關(guān)知識

While…Wend的語句格式:

While條件表達(dá)式語句塊

Wend語句功能:如果條件表達(dá)式的結(jié)果為True,則執(zhí)行循環(huán)體中的語句塊,一直執(zhí)行到Wend語句。然后再回到While語句,并再一次判斷條件表達(dá)式的值,如果還為True,則重復(fù)執(zhí)行循環(huán)體中的語句;如果為False,則程序?qū)腤end語句之后的語句繼續(xù)執(zhí)行。

3.程序?qū)崿F(xiàn)

1)界面設(shè)計(jì)初始界面如圖4.24所示。

2)屬性設(shè)置屬性設(shè)置如表4.7所示。設(shè)置屬性后的界面如圖4.25所示。圖4.24初始界面表4.7屬性設(shè)置圖4.25設(shè)置屬性后的界面

3)編寫代碼代碼編寫如下:

PrivateSubCommand1_Click()

DimnumberAsSingle,totalAsSingle

number=Val(InputBox("請輸入一個(gè)數(shù)(輸入負(fù)數(shù)則結(jié)束循環(huán)):"))

total=0

Whilenumber>=0

total=total+number

number=Val(InputBox("請輸入一個(gè)數(shù)(輸入負(fù)數(shù)則結(jié)束循環(huán)):"))

Wend

Label1.Caption="非負(fù)數(shù)據(jù)之和是:"+Str(total)

EndSub運(yùn)行程序,結(jié)果如圖4.26所示。圖4.26對非負(fù)數(shù)求和

4.思考

(1)本案例中的While循環(huán)什么時(shí)候會(huì)結(jié)束?

(2)本案例中的While循環(huán)的循環(huán)次數(shù)是否固定?案例8多重循環(huán)

1.學(xué)習(xí)目標(biāo)求sum=1!+2!+3!+4!+5!,用多重循環(huán)實(shí)現(xiàn)。通過本案例的學(xué)習(xí),掌握二重循環(huán)的用法。

2.相關(guān)知識如果在一個(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)可以相互嵌套,下面是幾種常見的二重嵌套形式:形式一:

Fori=…

Forj=…

Nextj

Nexti形式二:

DoWhile/Until…

DoWhile/Until…

Loop

Loop形式三:

Fori=…

DoWhile/Until…

Loop

Nexti形式四:

DoWhile…

Forj=…

Nextj

Loop

3.程序?qū)崿F(xiàn)

1)界面設(shè)計(jì)初始界面如圖4.27所示。

2)屬性設(shè)置屬性設(shè)置如表4.8所示。設(shè)置屬性后的界面如圖4.28所示。圖4.27初始界面表4.8屬性設(shè)置圖4.28設(shè)置屬性后的界面

3)編寫代碼代碼編寫如下:

PrivateSubCommand1_Click()

DimiAsInteger,jAsInteger,nAsInteger

Dimsum1AsLong,sum2AsLong

n=5

sum1=0

Fori=1Ton

sum2=1

Forj=1Toi

sum2=sum2*j

Nextj

sum1=sum1+sum2

Nexti

Label1.Caption="1!+2!+3!+4!+5!="+Str(sum

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論