VB三種程序結(jié)構(gòu)_第1頁
VB三種程序結(jié)構(gòu)_第2頁
VB三種程序結(jié)構(gòu)_第3頁
VB三種程序結(jié)構(gòu)_第4頁
VB三種程序結(jié)構(gòu)_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

3.2VB三種程序結(jié)構(gòu)VisualBasic語言作為結(jié)構(gòu)化程序設(shè)計(jì)語言,提供了三種控制流來控制程序的流程:順序,條件分支和循環(huán)語句。3.2.1順序結(jié)構(gòu)順序結(jié)構(gòu)程序中的語句依照其在程序中的位置依次順序地執(zhí)行。1、賦值語句格式:變量名/對(duì)象.屬性名=表達(dá)式功能:將賦值號(hào)右邊表達(dá)式的值賦給賦值號(hào)左邊的變量或?qū)ο髮傩?。舉例:Form1.width=300 Temp=20說明:1、當(dāng)表達(dá)式為數(shù)值型且與變量的精度不相同時(shí),強(qiáng)制轉(zhuǎn)換成左邊變量的精度。例如:DimAasinteger A=4.7ˊA是整型變量,A中的結(jié)果是5。

2、當(dāng)表達(dá)式是數(shù)字字符串,左邊變量是數(shù)值類型時(shí),自動(dòng)轉(zhuǎn)換成數(shù)值類型再賦值;但當(dāng)表達(dá)式有非數(shù)字字符或空串時(shí),則出錯(cuò)。例如;

n=“123”‘n中的結(jié)果是123’n為整形

n=“1a23”‘出現(xiàn)“類型不匹配”的錯(cuò)誤3、當(dāng)邏輯型賦值給數(shù)值型時(shí),True轉(zhuǎn)換為-1,F(xiàn)alse轉(zhuǎn)換為0;反之,當(dāng)數(shù)值型賦給邏輯型時(shí),非0轉(zhuǎn)換為True,0轉(zhuǎn)換為False.2、MsgBox函數(shù):向用戶顯示信息(輸出)MsgBox語句:MsgBox

(提示內(nèi)容[,答復(fù)按鈕+圖標(biāo)][,標(biāo)題])MsgBox函數(shù):DimxAsIntegerX=MsgBox(提示內(nèi)容[,答復(fù)按鈕+圖標(biāo)][,標(biāo)題])功能:打開一個(gè)消息框,等待用戶選擇一個(gè)按鈕。MsgBox函數(shù)返回所選按鈕對(duì)應(yīng)的整數(shù)值,其數(shù)值的意義見后表。若不需要返回值,則作為MsgBox語句。參數(shù)說明提示內(nèi)容:顯示給用戶的信息。最長(zhǎng)1024字符。如果

內(nèi)容超過一行,則可以在每一行之間用回車符

Chr(13))、換行符

(Chr(10))或是回車與換行符的組合

(Chr(13)&Chr(10))將各行分隔開來。

答復(fù)按鈕+圖標(biāo):確定在消息框中按鈕的數(shù)目和類型,以及圖標(biāo)的類型。標(biāo)題:顯示在消息框標(biāo)題欄上的文本。分組內(nèi)部常數(shù)按鈕值描述按鈕數(shù)目VbOkOnlyVbOkCancelVbAboutRetryIgnoreVbYesNoCancelVbYesNoVbRetryCancel012345只顯示確定按鈕顯示"確定"、"取消"按鈕顯示"終止"、"重試"、"忽略"按鈕顯示"是"、"否"、"取消"按鈕顯示"是"、"否"顯示"重試"、"取消"按鈕圖標(biāo)類型VbCriticalVbQuestionVbExclamationVbInformation16324864關(guān)鍵信息圖標(biāo),紅色STOP標(biāo)志詢問信息圖標(biāo)?警告信息圖標(biāo)!信息圖標(biāo)I默認(rèn)按鈕VbDefaultButton1VbDefaultButton2VbDefaultButton30256512第1個(gè)按鈕為默認(rèn)第2個(gè)按鈕為默認(rèn)第3個(gè)按鈕為默認(rèn)模式VbApplicationModaleVbSystemModal04096應(yīng)用模式系統(tǒng)模式"按鈕"設(shè)置值及意義內(nèi)部常數(shù)返回值被單擊的按鈕vbOkvbCancelvbAboutvbRetryvbIgnorevbYesvbNo1234567確定取消終止重試忽略是否MsgBox函數(shù)返回所選按鈕整數(shù)值的意義3、InputBox函數(shù):從用戶處獲取信息(輸入)功能:打開一個(gè)對(duì)話框,等待用戶鍵入內(nèi)容。當(dāng)用戶單擊"確定"按鈕或按回車鍵時(shí),函數(shù)返回輸入的值,其值的類型為字符串。(1)句法

變量名=InputBox(提示[,標(biāo)題][,默認(rèn)值][橫坐標(biāo),縱坐標(biāo)])

(2)參數(shù)說明提示:提示信息,類型是字符串。標(biāo)題:是對(duì)話框窗口中的標(biāo)題文本,類型是字符串。默認(rèn)值:在用戶輸入信息之前,輸入框中顯示的內(nèi)容,類型是字符串。

例:bb=MsgBox("錯(cuò)誤,重輸嗎?",vbYesNo+vbDefaultButton2+vbCritical,"確認(rèn)重輸對(duì)話框")Ifbb=vbNoThenEnd4、print語句格式1:對(duì)象.Print[表達(dá)式][{,|;}]功能:顯示數(shù)據(jù)。對(duì)象可以是窗體(Form)、圖形框(PictureBox)或打印機(jī)(Printer)。如果省略了對(duì)象,則在窗體上輸出。說明:①表達(dá)式:可選項(xiàng)??梢允且粋€(gè)或多個(gè)表達(dá)式。當(dāng)有多個(gè)表達(dá)式時(shí),要用分隔符(逗號(hào)、分號(hào))隔開。當(dāng)表達(dá)式缺省時(shí),則屏幕顯示一個(gè)空行。

②輸出格式分為標(biāo)準(zhǔn)輸出格式和緊湊輸出格式。標(biāo)準(zhǔn)輸出格式:以14個(gè)字符寬度劃分為一個(gè)區(qū)段,每個(gè)數(shù)據(jù)項(xiàng)占一個(gè)區(qū)段的位置。(數(shù)據(jù)項(xiàng)之間用逗號(hào)隔開)緊湊輸出格式:對(duì)于數(shù)值型數(shù)據(jù),前面有一個(gè)符號(hào)位,后面有一個(gè)空格;對(duì)于每個(gè)字符串,各個(gè)數(shù)據(jù)項(xiàng)之間沒有間隔。(各數(shù)據(jù)項(xiàng)之間用分號(hào)或空格作為分隔符)格式2:[對(duì)象.]Print[Spc(n)/Tab(n)][表達(dá)式表]Spc(n)函數(shù):用于在輸出時(shí)插入n個(gè)空格。Tab(n)函數(shù):表示在第n列顯示。3.2.2常用內(nèi)部函數(shù)內(nèi)部函數(shù)數(shù)學(xué)函數(shù)轉(zhuǎn)換函數(shù)字符串函數(shù)日期函數(shù)函數(shù)名含義示例結(jié)果Abs(N)Exp(N)Log(N)Rnd[(N)]Sgn(N)Sqr(N)Sin(N)Cos(N)Tan(N)Round(x,n)取絕對(duì)值e為底的指數(shù)函數(shù),即ex以e為底的自然對(duì)數(shù)產(chǎn)生隨機(jī)數(shù)符號(hào)函數(shù)(1,0,-1)平方根正弦函數(shù)余弦函數(shù)正切函數(shù)四舍五入函數(shù)Abs(-3.5)Exp(3)Log(10)RndSgn(-3.5)Sqr(9)Sin(0)Cos(0)Tan(0)3.520.0862.30-1之間的數(shù)-13010一數(shù)學(xué)函數(shù)?Round(3.89456,3)結(jié)果:3.895說明:☆在三角函數(shù)中,以弧度表示;sqr的自變量不能是負(fù)數(shù)

☆Rnd函數(shù)返回小于1,大于等于0的單精度隨機(jī)數(shù)。VB用于產(chǎn)生隨機(jī)數(shù)的公式取決于稱為種子(seed)的初始值。默認(rèn)情況下,每次運(yùn)行一個(gè)應(yīng)用程序,VB提供一相同的種子,即Rnd產(chǎn)生相同序列的隨機(jī)數(shù)。為了每次運(yùn)行時(shí),產(chǎn)生不同序列的隨機(jī)數(shù),可執(zhí)行Randomize語句,格式如下:

Randomize[number]如果省略number,則用系統(tǒng)計(jì)時(shí)器返回的值作為新的種子Rnd(x):x<=0:得到的相同的隨機(jī)數(shù)結(jié)果。大于0:序列中的下一個(gè)。省略:序列中的下一個(gè)隨機(jī)數(shù)。例子:int((b-a+1)*rnd)+a

要產(chǎn)生30~50之間的隨機(jī)數(shù)

int(Rnd*21)+30二、字符串函數(shù)☆Len()函數(shù) 格式:Len(String)

功能:計(jì)算字符串的長(zhǎng)度。 例子:Len("Visual")函數(shù)返回值為6Mid()函數(shù) 格式:Mid(String,n,m)

功能:從String字符串中從第n個(gè)字符開始連續(xù)取m個(gè)字符。 例子:Mid("VisualBasic6.0",7,5)函數(shù)返回值是"Basic"☆☆I(lǐng)nStr()函數(shù) 格式:InStr([n,]string1,string2)

功能;在string1中從n開始查找string2,如果存在,函數(shù)值為string2在string1中的位置值;找不到時(shí)函數(shù)的值為0。n是可選參數(shù)。為數(shù)值表達(dá)式,設(shè)置每次搜索的起點(diǎn)。如果省略,將從第一個(gè)字符的位置開始。 例子:PrintInStr(2,"efabcdefg","ef")函數(shù)返回值為7刪除前后空格函數(shù)格式:TRIM(<字符表達(dá)式>):去掉前后空格

LTRIM(<字符表達(dá)式>):去掉前空格

RTRIM(<字符表達(dá)式>):去掉后空格例:trim(“ab“)=“ab”ltrim(“ab“)=“ab”Rtrim(“ab“)=“ab”取子串函數(shù)格式:LEFT(<字符表達(dá)式>,<長(zhǎng)度>)功能:從表達(dá)式值的左端取一個(gè)指定長(zhǎng)度的子串格式:RIGHT(<字符表達(dá)式>,<長(zhǎng)度>)功能:從表達(dá)式的右端取一個(gè)指定長(zhǎng)度的子串。例子:LEFT("VisualBasic6.0",5)函數(shù)返回值是"Visua“RIGHT("VisualBasic6.0",5)函數(shù)返回值是“ic6.0“4.Str()

格式:Str(Number)

功能:將數(shù)值型量轉(zhuǎn)換成字符型量。 說明:Number為一個(gè)數(shù)值型量,返回一個(gè)字符型量。 示例:PrintStr(12345)值為字符“12345"。說明: ※Str函數(shù)將非負(fù)數(shù)值轉(zhuǎn)換成字符類型后,會(huì)在轉(zhuǎn)換后的字符串左邊增加空格,即數(shù)值的符號(hào)位。如Str(123)的結(jié)果為“123",而不是"123"。PrintStr(123)

三、日期函數(shù)1.Date

格式:Date

功能:提取計(jì)算機(jī)系統(tǒng)的當(dāng)前日期。 說明:該函數(shù)是無參函數(shù),返回日期的格式為"月-日-年"

示例:如果今天是2000年3月10日,則a=Date的值為“03-10-2000”PrintDate2.Now

格式:Now

功能:提取計(jì)算機(jī)系統(tǒng)的當(dāng)前的時(shí)間和日期。

示例:a=Nowa的值為00-3-610:08:34,表示當(dāng)前系統(tǒng)日期為2000年3月6日,系統(tǒng)時(shí)間為10點(diǎn)8分34秒。PrintNow3.Time

格式:Time

功能:提取計(jì)算機(jī)系統(tǒng)的當(dāng)前的時(shí)間。 說明:該函數(shù)是無參函數(shù),返回由當(dāng)前系統(tǒng)時(shí)間組成的一個(gè)字符串。 示例:a=Timea的值為"10:08:34"。4、格式:YEAR(日期表達(dá)式)MONTH(日期表達(dá)式)DAY(日期表達(dá)式)功能:返回年月日例:PrintDatePrintDay(#3/12/2006#)5、格式:HOUR(日期時(shí)間表達(dá)式)MINUTE(日期時(shí)間表達(dá)式)Second(日期時(shí)間表達(dá)式

)功能:返回時(shí)、分、秒。例:PrintTimePrintHour(#1:34:24PM#)PrintMinute(Time)四、其他函數(shù)1.Asc()

格式:Asc(String)

功能:將字符串轉(zhuǎn)換成ASCII值。 示例:PrintAsc("C")值為67。2.Chr()

格式:Chr(x)

功能:將ASCII碼值轉(zhuǎn)換成字符串。 示例:PrintChr(66)值為字符"B"。※Chr和Asc函數(shù)是一對(duì)互為反函數(shù)3.小寫轉(zhuǎn)換函數(shù)格式:Lcase(<字符表達(dá)式>)功能:將指定表達(dá)式值中的大寫字母轉(zhuǎn)換成小寫字母,其他字符不變。例:?Lcase('BOOK')book4.大寫轉(zhuǎn)換函數(shù)格式:Ucase(<字符表達(dá)式>)功能:將指定表達(dá)式值中的小寫字母轉(zhuǎn)換成大寫字母,其他字符不變。例:?Ucase(“work”)WORK5.Val()

格式:Val(String)

功能:將字符串量轉(zhuǎn)換成數(shù)值量。 示例:a=Val("-13.456")值為-13.456b=Val("13-456")值為13Val將數(shù)字字符串轉(zhuǎn)換為數(shù)值,當(dāng)字符串中出現(xiàn)非數(shù)值字符時(shí),停止轉(zhuǎn)換,函數(shù)返回的是停止轉(zhuǎn)換前的結(jié)果。如Val(“–123.45ty”)結(jié)果為-123.45。6.str()功能:將數(shù)值轉(zhuǎn)換成字符串。

VisualBasic選擇結(jié)構(gòu)的實(shí)現(xiàn):

If…Then語句(單分支結(jié)構(gòu))

If...Then…Else語句(雙分支結(jié)構(gòu))

SelectCase語句(多分支結(jié)構(gòu))3、2、2分支結(jié)構(gòu)1.If…Then語句(單分支結(jié)構(gòu))格式1:If〈表達(dá)式〉Then語句

格式2:If〈表達(dá)式〉Then

語句塊

EndIfTF語句(塊)表達(dá)式單分支結(jié)構(gòu)功能:當(dāng)條件表達(dá)式的值為“真”時(shí),則執(zhí)行Then后面的語句或語句塊;否則不執(zhí)行任何操作。說明:

語句塊可以是一條或多條語句。如果使用格式1的簡(jiǎn)單形式表示,則只能是一條語句;或用冒號(hào)隔開的多條語句,但這些語句必須書寫在一行上。

If...Then的單行格式不用EndIf語句。DimxAsIntegerPrivateSubCommand1_Click()x=90Ifx>0ThenMsgBox"正數(shù)":Print"x=90"EndSubPrivateSubCommand2_Click()x=90Ifx>0ThenMsgBox"正數(shù)"Print"x=90"EndIfEndSub【例3-3】任意輸入3個(gè)數(shù),找出其中的最大值。編寫的窗體單擊事件過程代碼如下:PrivateSubForm_Click()DimaAsSingle,bAsSingle,cAsSingle,maxAsSinglea=InputBox("請(qǐng)輸入第一個(gè)數(shù)","輸入框")b=InputBox("請(qǐng)輸入第二個(gè)數(shù)","輸入框")c=InputBox("請(qǐng)輸入第三個(gè)數(shù)","輸入框")max=aIfb>maxThenmax=bIfc>maxThenmax=cPrint"三個(gè)數(shù)中最大的為:"&maxEndSub2.If…Then…Else語句結(jié)構(gòu)(雙分支結(jié)構(gòu))

格式1:

If<表達(dá)式>Then<語句塊1>Else<語句塊2>EndIf格式2:

If<表達(dá)式>Then<語句1>Else<語句2>功能:當(dāng)表達(dá)式的值為非0(True)時(shí),執(zhí)行Then后面的語句塊1,否則執(zhí)行Else后面的語句塊2。FT語句(塊)1語句(塊)2表達(dá)式雙分支結(jié)構(gòu)說明:塊結(jié)構(gòu)的條件語句可以嵌套,即把一個(gè)If…Then…Else塊放在另一個(gè)If…Then…Else塊內(nèi)。嵌套必須完全嵌套,也就是內(nèi)層條件語句必須完全包含在外層條件語句之中?!纠?-4】火車站行李費(fèi)的收費(fèi)標(biāo)準(zhǔn)是40kg以內(nèi)(包括40kg)0.20元/kg,超過部分為0.50元/kg。編寫程序,根據(jù)輸入的任意重量,計(jì)算出應(yīng)付的行李費(fèi)。根據(jù)題意計(jì)算公式如下:Pay=Weight×0.20Weight≤40(Weight-40)×0.50+40×0.20Weight>40編寫的窗體單擊事件過程代碼如下:PrivateSubForm_Click()DimweightAsSingle,payAsSingleweight=InputBox("請(qǐng)輸入行李重量","輸入框")Ifweight>40Thenpay=(weight-40)*0.5+40*0.2Elsepay=weight*0.2EndIfPrint"行李重量="&weightPrint"所付費(fèi)用="&payEndSub3.If…Then…ElseIf語句(多分支結(jié)構(gòu))結(jié)構(gòu)語句格式:

If〈表達(dá)式1〉Then 〈語句塊1〉

ElseIf〈表達(dá)式2〉Then 〈語句塊2〉 …… [Else 〈語句塊n+1] EndIf

FTTT……表達(dá)式1表達(dá)式2表達(dá)式nn語句塊1語句塊2語句塊nn語句塊n+11F…圖3.10多分支結(jié)構(gòu)說明:①不管有幾個(gè)分支,程序執(zhí)行了一個(gè)分支后,其余分支不再執(zhí)行。②ElseIf子句的數(shù)量沒有限制,可以根據(jù)需要使用任意多個(gè)ElseIf子句。例:【例3-6】輸入一個(gè)學(xué)生的成績(jī)score,根據(jù)其所在分?jǐn)?shù)段給出他的考試等級(jí)。分?jǐn)?shù)段劃分規(guī)則是:90<score<=100為“優(yōu)秀”,80<score<=90為“良好”,70<score<=80為“中等”,60<=score<=70為“及格”,score<60為“不及格”,score>100為“輸入錯(cuò)誤”。PrivateSubForm_Click()DimscoreAsSinglescore=InputBox("請(qǐng)輸入學(xué)生的成績(jī)score;")Ifscore<60ThenPrint"不及格"ElseIfscore<70ThenPrint"及格"ElseIfscore<80ThenPrint"中等"ElseIfscore<90ThenPrint"良好"ElseIfscore<=100ThenPrint"優(yōu)秀"ElsePrint"輸入錯(cuò)誤"EndIfEndSub4.If語句的嵌套If語句的嵌套是指if或else語句后面的語句塊中又包含if語句。語句形式為:If<表達(dá)式1>thenif<表達(dá)式11>then ……

endif……endif【例3-5】輸入系數(shù)a,b和c,求二次方程ax2+bx+c=0的實(shí)根。PrivateSubForm_Click()Dima!,b!,c!,d!,x1!,x2!,xa=InputBox("請(qǐng)輸入系數(shù)a:")b=InputBox("請(qǐng)輸入系數(shù)b:")c=InputBox("請(qǐng)輸入系數(shù)c:")d=b*b-4*a*cIfd>0Thenx1=(-b+Sqr(d))/(2*a)x2=(-b-Sqr(d))/(2*a)Print"x1=";x1,"x2=";x2ElseIfd=0Thenx=-b/(2*a):Print"x=";xElsePrint"此方程無實(shí)根"EndIfEndIfEndSubPrivateSubForm_Click()DimscoreAsSinglescore=InputBox("請(qǐng)輸入學(xué)生的成績(jī)score:")Ifscore<60ThenPrint"不及格"ElseIfscore<=70ThenPrint"及格"ElseIfscore<=80ThenPrint"中等"ElseIfscore<=90ThenPrint"良好"ElseIfscore<=100ThenPrint"優(yōu)秀"ElsePrint"輸入錯(cuò)誤"EndIfEndSub

5.SelectCase語句(多分支結(jié)構(gòu))

┆┆FTFF表達(dá)式表n語句塊n+1┆語句塊nT表達(dá)式表2語句塊2T表達(dá)式表1語句塊1圖3.11SelectCase結(jié)構(gòu)格式:SelectCase測(cè)試變量或表達(dá)式

[Case表達(dá)式表1[語句塊1]][Case表達(dá)式表2[語句塊2]]……[Case表達(dá)式表n[語句塊n]][CaseElse[語句塊n+1]]EndSelect功能:根據(jù)SelectCase<變量或表達(dá)式>中的結(jié)果與各Case子句中的值比較,決定執(zhí)行哪一組語句塊。如果有多個(gè)Case短語中的值與測(cè)試值匹配,則根據(jù)自上而下判斷原則,只執(zhí)行第一個(gè)與之匹配的語句塊。說明:如果在一個(gè)列表中有多個(gè)值,就用逗號(hào)把值隔開。例:一個(gè)表達(dá)式。如:Case6一組用逗號(hào)隔開的枚舉值。如:

Case1,3,5,7表達(dá)式1TO表達(dá)式2。如:Case1To10Is關(guān)系運(yùn)算表達(dá)式。如caseis<5PrivateSubForm_Click()DimscoreAsSinglescore=InputBox("請(qǐng)輸入學(xué)生的成績(jī)score;")SelectCasescoreCaseIs<60Print"不及格"CaseIs<70Print"及格"CaseIs<80Print"中等"CaseIs<90Print"良好"CaseIs<=100Print"優(yōu)秀"CaseElsePrint"輸入錯(cuò)誤"EndSelectEndSub

循環(huán)是在指定的條件下多次重復(fù)執(zhí)行一組語句,這可通過循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。VB中提供了兩種類型的循環(huán)語句:一種是計(jì)數(shù)循環(huán)語句;另一種是條件循環(huán)語句。VisualBasic支持的循環(huán)結(jié)構(gòu)有:

☆For...Next

☆Do…Loop☆While…Wend3.2.3循環(huán)結(jié)構(gòu)

1.For…Next循環(huán)循環(huán)體ExitFor循環(huán)體循環(huán)變量增加步長(zhǎng)循環(huán)變量獲得初值FT循環(huán)變量在終值內(nèi)For循環(huán)的執(zhí)行過程格式:For循環(huán)變量=初值

To終值[Step步長(zhǎng)]<循環(huán)體>[ExitFor]<循環(huán)體>Next[循環(huán)變量]說明:①格式中的參數(shù)說明:☆循環(huán)變量必須為數(shù)值型?!钛h(huán)的初值、終值和步長(zhǎng)都是數(shù)值表達(dá)式,其中,增量參數(shù)可正可負(fù)。如果增量為正,則初值必須小于等于終值;如果增量為負(fù),則初值必須大于等于終值。如果沒有設(shè)置step,則增量默認(rèn)為1?!頔xitFor為強(qiáng)行退出循環(huán)語句。當(dāng)遇到該語句時(shí),退出循環(huán),執(zhí)行Next的下一個(gè)語句?!町?dāng)循環(huán)是單層循環(huán)時(shí),Next后面的循環(huán)變量可以不寫。例:3-8求階乘。PrivateSubForm_Click()Dimi%,f&,n%n=InputBox("輸入正整數(shù):","輸入提示","10")f=1Fori=1Tonf=f*iNextPrintn;"!=";fEndSub

2.Do...Loop循環(huán)

Do…Loop循環(huán)用于事先不知道循環(huán)次數(shù)的循環(huán)結(jié)構(gòu)。此種語句四種語法格式:

⑴.DoWhile…Loop語句

⑵.Do…LoopWhile語句

⑶.DoUntil…Loop語句⑷.Do…LoopUntil語句格式:DoWhile〈條件表達(dá)式〉〈循環(huán)體〉[ExitDo]〈循環(huán)體〉Loop

⑴.DoWhile…Loop語句TF條件循環(huán)體DoWhile…Loop語句流程圖說明:1、循環(huán)體中要有控制循環(huán)的語句,以避免出現(xiàn)死循環(huán)。2、由于該循環(huán)的特點(diǎn)是先判斷條件,然后再?zèng)Q定是否要執(zhí)行循環(huán)體里的語句。3、ExitDo表示當(dāng)遇到該語句時(shí),強(qiáng)制退出循環(huán),執(zhí)行Loop后的下一條語句。PrivateSubcmdDoWhileLoop_Click()DimiAsIntegerDimTotalAsLongDountili>100Total=Total+i*ii=i+1LoopPrintTotalEndSub例求1到100之間所有自然數(shù)的平方和。即【例3-10】給出兩個(gè)正整數(shù)M和N,求他們的最大公約數(shù)和最小公倍數(shù)。求最大公約數(shù)的算法如下:(1)以M作被除數(shù),N作除數(shù),求余數(shù)R。(2)如果R不為零,則將除數(shù)N做為新的被除數(shù)M,將余數(shù)R做為新的除數(shù)N,再進(jìn)行相除,得到新的余數(shù)R。(3)如果R仍不等于0,則重復(fù)步驟(2)。如果R為零,則這時(shí)的被除數(shù)N就是最大公約數(shù)。最小公倍數(shù)為這兩個(gè)數(shù)的乘積除以他們的最大公約數(shù)。編寫窗體單擊事件過程代碼如下:PrivateSubForm_Click()DimAAsInteger,BAsInteger,NAsInteger,MAsInteger,RAsInteger,TAsIntegerM=InputBox("請(qǐng)輸入第一個(gè)正整數(shù)M","求M、N最大公約數(shù)和最小公倍數(shù)")N=InputBox("請(qǐng)輸入第二個(gè)正整數(shù)N","求M、N最大公約數(shù)和最小公倍數(shù)")A=M:B=NIfM<NThen'使M中存放較大的數(shù),N中存放較小的數(shù)

T=MM=NN=TEndIfR=MModNDoWhileR<>0M=NN=RR=MModNLoopPrint"最大公約數(shù)為:",NPrint"最小公倍數(shù)為:",A*B/NEndSubTF條件循環(huán)體Do…LoopWhile語句流程圖格式:

Do〈循環(huán)體〉[ExitDo]〈循環(huán)體〉LoopWhile〈條件表達(dá)式〉

⑵.Do…LoopWhile語句說明:①至少要執(zhí)行循環(huán)體一次。②與DoWhile循環(huán)的區(qū)別:

DoWhile循環(huán)先測(cè)試條件是否成立,只有成立才執(zhí)行循環(huán);而該循環(huán)先執(zhí)行循環(huán)體,后測(cè)試條件是否成立。例求1到100之間所有自然數(shù)的平方和。即PrivateSubcmdDoLoopWhile_Click()DimiAsIntegerDimTotalAsLongDoTotal=Total+i*ii=i+1LoopWhilei<=100Label1.Caption="Do…LoopWhile方法結(jié)果:"Label2.Caption=Format(Total)EndSub格式:

DoUntil〈條件表達(dá)式〉〈循環(huán)體〉[ExitDo]〈循環(huán)體〉Loop

⑶.DoUntil…Loop語句DoUntil…Loop語句流程圖FT條件循環(huán)體⑷.Do…LoopUntil語句格式:Do〈循環(huán)體〉[ExitDo]〈循環(huán)體〉LoopUntil〈條件表達(dá)式〉TF條件循環(huán)體Do…LoopUntil語句流程圖PrivateSubc

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論