32VB三種程序結(jié)構(gòu)VisualBasic語言作為結(jié)構(gòu)化程序設(shè)計(jì)語言,提供ppt課件_第1頁
32VB三種程序結(jié)構(gòu)VisualBasic語言作為結(jié)構(gòu)化程序設(shè)計(jì)語言,提供ppt課件_第2頁
32VB三種程序結(jié)構(gòu)VisualBasic語言作為結(jié)構(gòu)化程序設(shè)計(jì)語言,提供ppt課件_第3頁
32VB三種程序結(jié)構(gòu)VisualBasic語言作為結(jié)構(gòu)化程序設(shè)計(jì)語言,提供ppt課件_第4頁
32VB三種程序結(jié)構(gòu)VisualBasic語言作為結(jié)構(gòu)化程序設(shè)計(jì)語言,提供ppt課件_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、3.2 VB3.2 VB三種程序結(jié)構(gòu)三種程序結(jié)構(gòu)Visual BasicVisual Basic語言作為結(jié)構(gòu)化程序設(shè)計(jì)語語言作為結(jié)構(gòu)化程序設(shè)計(jì)語言,提供了三種控制流來控制程序的流言,提供了三種控制流來控制程序的流程:順序,條件分支和循環(huán)語句。程:順序,條件分支和循環(huán)語句。3.2.1 順序結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)程序中的語句依照其在程序中的位順序結(jié)構(gòu)程序中的語句依照其在程序中的位置依次順序地執(zhí)行。置依次順序地執(zhí)行。1、 賦值語句賦值語句格式:格式: 變量名變量名/對(duì)象對(duì)象.屬性名屬性名 = 表達(dá)式表達(dá)式功能:將賦值號(hào)右邊表達(dá)式的值賦給賦值號(hào)功能:將賦值號(hào)右邊表達(dá)式的值賦給賦值號(hào)左邊的變量或?qū)ο髮傩浴?/p>

2、左邊的變量或?qū)ο髮傩?。舉例:舉例: Form1.width = 300 Temp = 20闡明:闡明: 1、 當(dāng)表達(dá)式為數(shù)值型且與變量的精度不當(dāng)表達(dá)式為數(shù)值型且與變量的精度不相同時(shí),強(qiáng)制轉(zhuǎn)換成左邊變量的精度。例相同時(shí),強(qiáng)制轉(zhuǎn)換成左邊變量的精度。例如:如:Dim A as integerA = 4.7 A是整型變量,是整型變量,A中的結(jié)果是中的結(jié)果是5。 2、 當(dāng)表達(dá)式是數(shù)字字符串,左邊變量是當(dāng)表達(dá)式是數(shù)字字符串,左邊變量是數(shù)值類型時(shí),自動(dòng)轉(zhuǎn)換成數(shù)值類型再賦值;數(shù)值類型時(shí),自動(dòng)轉(zhuǎn)換成數(shù)值類型再賦值;但當(dāng)表達(dá)式有非數(shù)字字符或空串時(shí),則出但當(dāng)表達(dá)式有非數(shù)字字符或空串時(shí),則出錯(cuò)。例如;錯(cuò)。例如; n=

3、“123” n中的結(jié)果是中的結(jié)果是123 n為整形為整形 n=“1a23” 出現(xiàn)出現(xiàn)“類型不匹配的錯(cuò)誤類型不匹配的錯(cuò)誤3、 當(dāng)邏輯型賦值給數(shù)值型時(shí),當(dāng)邏輯型賦值給數(shù)值型時(shí),True轉(zhuǎn)轉(zhuǎn)換為換為-1,F(xiàn)alse轉(zhuǎn)換為轉(zhuǎn)換為0;反之,當(dāng)數(shù)值型賦;反之,當(dāng)數(shù)值型賦給邏輯型時(shí),非給邏輯型時(shí),非0轉(zhuǎn)換為轉(zhuǎn)換為True,0轉(zhuǎn)換為轉(zhuǎn)換為False.2、MsgBox函數(shù):向用戶顯示信息輸出)MsgBox語句:MsgBox (提示內(nèi)容 ,答復(fù)按鈕+圖標(biāo),標(biāo)題)MsgBox函數(shù):Dim x As IntegerX=MsgBox(提示內(nèi)容 ,答復(fù)按鈕+圖標(biāo),標(biāo)題)功能:打開一個(gè)消息框,等待用戶選擇一個(gè)按鈕。功能:打

4、開一個(gè)消息框,等待用戶選擇一個(gè)按鈕。MsgBox函數(shù)返回所選按鈕對(duì)應(yīng)的整數(shù)值,其數(shù)值的意義見后表。函數(shù)返回所選按鈕對(duì)應(yīng)的整數(shù)值,其數(shù)值的意義見后表。若不需要返回值,則作為若不需要返回值,則作為MsgBox語句。語句。參數(shù)說明提示內(nèi)容:顯示給用戶的信息。最長1024字符。假設(shè) 內(nèi)容超過一行,則可以在每一行之間用回車符 Chr(13)、換行符 (Chr(10) 或是回車與換行符的組合 (Chr(13) & Chr(10) 將各行分隔開來。 答復(fù)按鈕+圖標(biāo):確定在消息框中按鈕 的數(shù)目和類型,以及圖標(biāo)的類型。標(biāo)題:顯示在消息框標(biāo)題欄上的文本。分組分組 內(nèi)部常數(shù)內(nèi)部常數(shù) 按鈕值按鈕值 描描 述述

5、 按按鈕鈕 數(shù)數(shù)目目VbOkOnlyVbOkCancelVbAboutRetryIgnoreVbYesNoCancelVbYesNoVbRetryCancel012345只顯示確定按鈕只顯示確定按鈕顯示顯示確定確定、取消取消按鈕按鈕顯示顯示終止終止、重試重試、忽略忽略按按鈕鈕顯示顯示是是、 否否 、 取消取消按鈕按鈕顯示顯示是是、 否否 顯示顯示重試重試、 取消取消按鈕按鈕圖標(biāo)圖標(biāo)類型類型VbCriticalVbQuestionVbExclamationVbInformation16324864關(guān)鍵信息圖標(biāo),紅色關(guān)鍵信息圖標(biāo),紅色STOP標(biāo)志標(biāo)志詢問信息圖標(biāo)詢問信息圖標(biāo) ?警告信息圖標(biāo)警告信息

6、圖標(biāo) !信息圖標(biāo)信息圖標(biāo) I默認(rèn)默認(rèn)按鈕按鈕VbDefaultButton1VbDefaultButton2VbDefaultButton30256512第第1個(gè)按鈕為默認(rèn)個(gè)按鈕為默認(rèn)第第2個(gè)按鈕為默認(rèn)個(gè)按鈕為默認(rèn)第第3個(gè)按鈕為默認(rèn)個(gè)按鈕為默認(rèn)模式模式VbApplicationModaleVbSystemModal04096應(yīng)用模式應(yīng)用模式系統(tǒng)模式系統(tǒng)模式按鈕按鈕設(shè)置值及意義設(shè)置值及意義內(nèi)部常數(shù)返回值被單擊的按鈕vbOkvbCancelvbAboutvbRetryvbIgnorevbYesvbNo1234567確定取消終止重試忽略是否MsgBox函數(shù)返回所選按鈕整數(shù)值的意義函數(shù)返回所選按鈕整數(shù)

7、值的意義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ì)話框) If bb = vbNo Then End4、pri

8、nt語句語句格式格式1:對(duì)象:對(duì)象. Print 表達(dá)式表達(dá)式 ,|;功能:顯示數(shù)據(jù)。功能:顯示數(shù)據(jù)。 對(duì)象可以是窗體對(duì)象可以是窗體Form)、)、圖形框圖形框(PictureBox)或打印機(jī)或打印機(jī)Printer)。如果省略了對(duì)象,)。如果省略了對(duì)象,則在窗體上輸出。則在窗體上輸出。闡明:闡明: 表達(dá)式:可選項(xiàng)??梢允潜磉_(dá)式:可選項(xiàng)??梢允且粋€(gè)或多個(gè)表達(dá)式。當(dāng)有多個(gè)表一個(gè)或多個(gè)表達(dá)式。當(dāng)有多個(gè)表達(dá)式時(shí),要用分隔符逗號(hào)、分達(dá)式時(shí),要用分隔符逗號(hào)、分號(hào)隔開。當(dāng)表達(dá)式缺省時(shí),則號(hào)隔開。當(dāng)表達(dá)式缺省時(shí),則屏幕顯示一個(gè)空行。屏幕顯示一個(gè)空行。 輸出格式分為標(biāo)準(zhǔn)輸出格式和輸出格式分為標(biāo)準(zhǔn)輸出格式和緊湊輸

9、出格式。緊湊輸出格式。標(biāo)準(zhǔn)輸出格式:以標(biāo)準(zhǔn)輸出格式:以14個(gè)字符寬度劃個(gè)字符寬度劃分為一個(gè)區(qū)段,每個(gè)數(shù)據(jù)項(xiàng)占一分為一個(gè)區(qū)段,每個(gè)數(shù)據(jù)項(xiàng)占一個(gè)區(qū)段的位置。(數(shù)據(jù)項(xiàng)之間用個(gè)區(qū)段的位置。(數(shù)據(jù)項(xiàng)之間用逗號(hào)隔開)逗號(hào)隔開)緊湊輸出格式:對(duì)于數(shù)值型數(shù)據(jù),緊湊輸出格式:對(duì)于數(shù)值型數(shù)據(jù),前面有一個(gè)符號(hào)位,后面有一個(gè)前面有一個(gè)符號(hào)位,后面有一個(gè)空格;對(duì)于每個(gè)字符串,各個(gè)數(shù)空格;對(duì)于每個(gè)字符串,各個(gè)數(shù)據(jù)項(xiàng)之間沒有間隔。(各數(shù)據(jù)項(xiàng)據(jù)項(xiàng)之間沒有間隔。(各數(shù)據(jù)項(xiàng)之間用分號(hào)或空格作為分隔符)之間用分號(hào)或空格作為分隔符)格式格式2:對(duì)象對(duì)象.PrintSpc(n)/Tab(n)表達(dá)式表表達(dá)式表Spc(n)函數(shù):用于在輸出

10、時(shí)插入函數(shù):用于在輸出時(shí)插入n個(gè)空個(gè)空格。格。Tabn函數(shù):表示在第函數(shù):表示在第n 列顯示。列顯示。3.2.2 常用內(nèi)部函數(shù)常用內(nèi)部函數(shù)內(nèi)部函數(shù)內(nèi)部函數(shù)數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù)轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù)字符串函數(shù)字符串函數(shù)日期函數(shù)日期函數(shù)函數(shù)名函數(shù)名含義含義例如例如結(jié)果結(jié)果Abs(N)Exp(N)Log(N)Rnd(N)Sgn(N)Sqr(N)Sin(N)Cos(N)Tan(N)Round(x,n)取絕對(duì)值取絕對(duì)值e為底的指數(shù)函數(shù),即為底的指數(shù)函數(shù),即ex以以e為底的自然對(duì)數(shù)為底的自然對(duì)數(shù)產(chǎn)生隨機(jī)數(shù)產(chǎn)生隨機(jī)數(shù)符號(hào)函數(shù)符號(hào)函數(shù)(1,0,-1)平方根平方根正弦函數(shù)正弦函數(shù)余弦函數(shù)余弦函數(shù)正切函數(shù)正切函數(shù)四舍五入函

11、數(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ù)之間的數(shù)-13010一一 數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù)? Round(3.89456,3) 結(jié)果結(jié)果:3.895闡明:闡明: 在三角函數(shù)中,以弧度表示;在三角函數(shù)中,以弧度表示;sqr的自變量不能是負(fù)數(shù)的自變量不能是負(fù)數(shù) Rnd函數(shù)返回小于函數(shù)返回小于1,大于等于,大于等于0的單精度隨機(jī)數(shù)。的單精度隨機(jī)數(shù)。VB用于產(chǎn)生隨機(jī)數(shù)的公式取決于稱為種子用于產(chǎn)生隨機(jī)數(shù)的公式取決于稱為種子seed的初始值。的初始值。默認(rèn)情況下,每次運(yùn)行一個(gè)應(yīng)用程序,

12、默認(rèn)情況下,每次運(yùn)行一個(gè)應(yīng)用程序,VB提供一相同的種子,提供一相同的種子,即即Rnd產(chǎn)生相同序列的隨機(jī)數(shù)。為了每次運(yùn)行時(shí),產(chǎn)生不同序產(chǎn)生相同序列的隨機(jī)數(shù)。為了每次運(yùn)行時(shí),產(chǎn)生不同序列的隨機(jī)數(shù),可執(zhí)行列的隨機(jī)數(shù),可執(zhí)行Randomize語句,格式如下:語句,格式如下:Randomize number如果省略如果省略number,則用系統(tǒng)計(jì)時(shí)器返回的值作為新的種子,則用系統(tǒng)計(jì)時(shí)器返回的值作為新的種子Rnd(x): x=0:得到的相同的隨機(jī)數(shù)結(jié)果。得到的相同的隨機(jī)數(shù)結(jié)果。大于大于 0:序列中的下一個(gè)。序列中的下一個(gè)。 省略省略:序列中的下一個(gè)隨機(jī)數(shù)。序列中的下一個(gè)隨機(jī)數(shù)。例子:例子:int(b-a+

13、1)*rnd)+a要產(chǎn)生要產(chǎn)生3050之間的隨機(jī)數(shù)之間的隨機(jī)數(shù)int(Rnd*21)+30二、二、 字符串函數(shù)字符串函數(shù) Len( )函數(shù)函數(shù)格式:格式:Len(String)功能:計(jì)算字符串的長度。功能:計(jì)算字符串的長度。例子:例子:Len(Visual) 函數(shù)返回值為函數(shù)返回值為6Mid( ) 函數(shù)函數(shù)格式:格式:Mid(String,n,m)功能:從功能:從String字符串中從第字符串中從第n 個(gè)字符開始連續(xù)取個(gè)字符開始連續(xù)取m個(gè)字符。個(gè)字符。例子:例子:Mid(VisualBasic6.0,7,5) 函數(shù)返回值是函數(shù)返回值是Basic InStr( )函數(shù)函數(shù)格式:格式:InStr(

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

15、TRIM():去掉前空格:去掉前空格 RTRIM():去掉后空格:去掉后空格例:例:trim(“ ab “)=“ab”ltrim(“ ab “)=“ab ”Rtrim(“ ab “)=“ ab”取子串函數(shù)取子串函數(shù)格式:格式:LEFT(,)功能:從表達(dá)式值的左端取一個(gè)指定長度的子串功能:從表達(dá)式值的左端取一個(gè)指定長度的子串格式:格式: RIGHT(,)功能:從表達(dá)式的右端取一個(gè)指定長度的子串。功能:從表達(dá)式的右端取一個(gè)指定長度的子串。 例子:例子: LEFT(VisualBasic6.0, 5) 函數(shù)返回值是函數(shù)返回值是Visua“RIGHT(VisualBasic6.0, 5) 函數(shù)返回值是

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

17、數(shù)日期函數(shù)1Date格式:格式:Date功能:提取計(jì)算機(jī)系統(tǒng)的當(dāng)前日期。功能:提取計(jì)算機(jī)系統(tǒng)的當(dāng)前日期。闡明:該函數(shù)是無參函數(shù),返回日期的格式為闡明:該函數(shù)是無參函數(shù),返回日期的格式為月月-日日-年年例如:如果今天是例如:如果今天是2000年年3月月10日,則日,則a=Date的值為的值為“03-10-2000”Print Date2Now格式:格式:Now功能:提取計(jì)算機(jī)系統(tǒng)的當(dāng)前的時(shí)間和日期。功能:提取計(jì)算機(jī)系統(tǒng)的當(dāng)前的時(shí)間和日期。例如:例如:a=Now a的值為的值為00-3-6 10:08:34,表示當(dāng)前系統(tǒng)日表示當(dāng)前系統(tǒng)日期為期為2000年年3月月6日,系統(tǒng)時(shí)間為日,系統(tǒng)時(shí)間為10點(diǎn)

18、點(diǎn)8分分34秒。秒。Print Now3Time格式:格式:Time功能:提取計(jì)算機(jī)系統(tǒng)的當(dāng)前的時(shí)間。功能:提取計(jì)算機(jī)系統(tǒng)的當(dāng)前的時(shí)間。闡明:該函數(shù)是無參函數(shù),返回由當(dāng)前系統(tǒng)時(shí)間組成的一闡明:該函數(shù)是無參函數(shù),返回由當(dāng)前系統(tǒng)時(shí)間組成的一個(gè)字符串。個(gè)字符串。例如:例如:a=Time a的值為的值為10:08:34。 4、格式:、格式:YEAR(日期表達(dá)式日期表達(dá)式 ) MONTH(日期表達(dá)式日期表達(dá)式 ) DAY(日期表達(dá)式日期表達(dá)式 )功能:返回年月日功能:返回年月日例:例:Print Date Print Day(#3/12/2019#)5、格式:、格式: HOUR(日期時(shí)間表達(dá)式日期時(shí)間表

19、達(dá)式 ) MINUTE(日期時(shí)間表達(dá)式日期時(shí)間表達(dá)式 ) Second(日期時(shí)間表達(dá)式日期時(shí)間表達(dá)式 )功能:返回時(shí)、分、秒。功能:返回時(shí)、分、秒。例:例:Print TimePrint Hour(#1:34:24 PM#)Print Minute(Time)四、四、 其他函數(shù)其他函數(shù)1Asc()()格式:格式:Asc(String)功能:將字符串轉(zhuǎn)換成功能:將字符串轉(zhuǎn)換成ASCII值。值。例如:例如:Print Asc(C) 值為值為67。2Chr()()格式:格式:Chr(x)功能:將功能:將ASCII碼值轉(zhuǎn)換成字符串。碼值轉(zhuǎn)換成字符串。例如:例如:Print Chr(66)值為字符值為字

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

21、:將字符串量轉(zhuǎn)換成數(shù)值量。例如:例如:a=Val(-13.456) 值為值為-13.456 b=Val(13-456) 值為值為13 Val將數(shù)字字符串轉(zhuǎn)換為數(shù)值,當(dāng)字符串中出現(xiàn)非數(shù)值字將數(shù)字字符串轉(zhuǎn)換為數(shù)值,當(dāng)字符串中出現(xiàn)非數(shù)值字符時(shí),停止轉(zhuǎn)換,函數(shù)返回的是停止轉(zhuǎn)換前的結(jié)果。符時(shí),停止轉(zhuǎn)換,函數(shù)返回的是停止轉(zhuǎn)換前的結(jié)果。如如Val(“ 123.45ty”)結(jié)果為結(jié)果為-123.45。6.str( )功能:將數(shù)值轉(zhuǎn)換成字符串。功能:將數(shù)值轉(zhuǎn)換成字符串。 Visual Basic 選擇結(jié)構(gòu)的實(shí)現(xiàn): IfThen 語句單分支結(jié)構(gòu)) If.ThenElse 語句雙分支結(jié)構(gòu)) Select Case

22、語句多分支結(jié)構(gòu))3、2、2 分支結(jié)構(gòu)分支結(jié)構(gòu)1. IfThen語句單分支結(jié)構(gòu))語句單分支結(jié)構(gòu)) 格式格式1:If 表達(dá)式表達(dá)式Then 語句語句 格式格式2:If 表達(dá)式表達(dá)式Then 語句塊語句塊 End IfTF 語句塊)語句塊)表達(dá)式表達(dá)式單分支結(jié)構(gòu)單分支結(jié)構(gòu)功能:當(dāng)條件表達(dá)式的值為功能:當(dāng)條件表達(dá)式的值為“真時(shí),真時(shí),則執(zhí)行則執(zhí)行Then后面的語句或語句塊;后面的語句或語句塊;否則不執(zhí)行任何操作。否則不執(zhí)行任何操作。闡明:闡明: 語句塊可以是一條或多條語句。如果使用格式語句塊可以是一條或多條語句。如果使用格式1的簡單形式表示,則只能是一條語句;或用冒號(hào)隔開的的簡單形式表示,則只能是一條

23、語句;或用冒號(hào)隔開的多條語句,但這些語句必須書寫在一行上。多條語句,但這些語句必須書寫在一行上。 If.Then 的單行格式不用的單行格式不用 End If 語句。語句。Dim x As IntegerPrivate Sub Command1_Click()x = 90If x 0 Then MsgBox 正數(shù)正數(shù): Print x=90End SubPrivate Sub Command2_Click()x = 90If x 0 ThenMsgBox 正數(shù)正數(shù)Print x=90End IfEnd Sub【例3-3】任意輸入3個(gè)數(shù),找出其中的最大值。編寫的窗體單擊事件過程代碼如下:Priva

24、te Sub Form_Click() Dim a As Single, b As Single, c As Single, max As Single a = InputBox(請(qǐng)輸入第一個(gè)數(shù), 輸入框) b = InputBox(請(qǐng)輸入第二個(gè)數(shù), 輸入框) c = InputBox(請(qǐng)輸入第三個(gè)數(shù), 輸入框) max = a If b max Then max = b If c max Then max = c Print 三個(gè)數(shù)中最大的為: & maxEnd Sub2. IfThen Else 語句結(jié)構(gòu)語句結(jié)構(gòu) (雙分支結(jié)構(gòu))(雙分支結(jié)構(gòu))格式格式1: If Then Else

25、End If格式格式2: If Then Else 功能:當(dāng)表達(dá)式的值為非功能:當(dāng)表達(dá)式的值為非0True時(shí)時(shí),執(zhí)行執(zhí)行Then后面的語后面的語句塊句塊1,否則執(zhí)行,否則執(zhí)行Else后面的語句塊后面的語句塊2。FT語句語句(塊塊)1語句語句(塊塊)2表達(dá)表達(dá)式式雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)闡明:塊結(jié)構(gòu)的條件語句可以嵌套,即把一個(gè)闡明:塊結(jié)構(gòu)的條件語句可以嵌套,即把一個(gè)If Then Else 塊放在另一個(gè)塊放在另一個(gè)If Then Else 塊內(nèi)。嵌塊內(nèi)。嵌套必須完全嵌套,也就是內(nèi)層條件語句必須完全包含在套必須完全嵌套,也就是內(nèi)層條件語句必須完全包含在外層條件語句之中。外層條件語句之中?!纠?-4】火

26、車站行李費(fèi)的收費(fèi)標(biāo)準(zhǔn)是40kg以內(nèi)包括40kg0.20元/kg,超過部分為0.50元/kg。編寫程序,根據(jù)輸入的任意重量,計(jì)算出應(yīng)付的行李費(fèi)。根據(jù)題意計(jì)算公式如下:Pay=Weight0.20 Weight40( W e i g h t - 4 0 ) 0 . 5 0 + 4 0 0 . 2 0 Weight40編寫的窗體單擊事件過程代碼如下:Private Sub Form_Click()Dim weight As Single, pay As Singleweight = InputBox(請(qǐng)輸入行李重量, 輸入框)If weight 40 Thenpay = (weight - 40)

27、* 0.5 + 40 * 0.2Elsepay = weight * 0.2End IfPrint 行李重量= & weightPrint 所付費(fèi)用= & payEnd Sub3. IfThen Else If 語句多分支結(jié)構(gòu)構(gòu)造語句多分支結(jié)構(gòu)構(gòu)造 語句格式:語句格式: If If 表達(dá)式表達(dá)式1 1 Then Then 語句塊語句塊1 1 ElseIf ElseIf 表達(dá)式表達(dá)式2 2ThenThen 語句塊語句塊2 2 Else Else 語句塊語句塊 n+1 n+1 End If End If FTTT表達(dá)式表達(dá)式1表達(dá)式表達(dá)式2表達(dá)式表達(dá)式nn語句塊語句塊1語句塊語句塊

28、2語句塊語句塊nn語句塊語句塊n+11F圖圖3.10 3.10 多分支結(jié)構(gòu)多分支結(jié)構(gòu)闡明:闡明: 不管有幾個(gè)分支,程序執(zhí)行了一個(gè)不管有幾個(gè)分支,程序執(zhí)行了一個(gè)分支后,其余分支不再執(zhí)行。分支后,其余分支不再執(zhí)行。 ElseIf ElseIf子句的數(shù)量沒有限制,可以子句的數(shù)量沒有限制,可以根據(jù)需要使用任意多個(gè)根據(jù)需要使用任意多個(gè)ElseIfElseIf子句。子句。例:例: 【例【例3-63-6】輸入一個(gè)學(xué)生的成績】輸入一個(gè)學(xué)生的成績scorescore,根據(jù)其所在分?jǐn)?shù)段給出他的考,根據(jù)其所在分?jǐn)?shù)段給出他的考試等級(jí)。分?jǐn)?shù)段劃分規(guī)則是:試等級(jí)。分?jǐn)?shù)段劃分規(guī)則是:90score=10090score=1

29、00為為“優(yōu)秀優(yōu)秀”,80score=9080score=90為為“良好良好”,70score=8070score=80為為“中等中等”,60=score=7060=score=70為為“及格及格”,score60score100score100為為“輸入錯(cuò)誤輸入錯(cuò)誤”。Private Sub Form_Click()Private Sub Form_Click()Dim score As SingleDim score As Singlescore = InputBox(score = InputBox(請(qǐng)輸入學(xué)生的成績請(qǐng)輸入學(xué)生的成績score;)score;)If score 60 Th

30、enIf score 60 ThenPrint Print 不及格不及格 ElseIf score 70 ThenElseIf score 70 ThenPrint Print 及格及格 ElseIf score 80 ThenElseIf score 80 ThenPrint Print 中等中等 ElseIf score 90 ThenElseIf score 90 ThenPrint Print 良好良好 ElseIf score = 100 ThenElseIf score = 100 ThenPrint Print 優(yōu)秀優(yōu)秀 ElseElsePrint Print 輸入錯(cuò)誤輸入錯(cuò)誤

31、End IfEnd IfEnd SubEnd Sub4 . If 語句的嵌套語句的嵌套If 語句的嵌套是指語句的嵌套是指if或或else語句后面的語句塊中又包含語句后面的語句塊中又包含if語句。語句。語句形式為:語句形式為:If then if then endif endif【例3-5】輸入系數(shù)a,b和c,求二次方程ax2+bx+c = 0的實(shí)根。Private Sub Form_Click()Dim a!, 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

32、* b - 4 * a * cIf d 0 Thenx1 = (-b + Sqr(d) / (2 * a)x2 = (-b - Sqr(d) / (2 * a)Print x1=; x1, x2=; x2ElseIf d = 0 Thenx = -b / (2 * a): Print x=; xElsePrint 此方程無實(shí)根End IfEnd IfEnd SubPrivate Sub Form_Click()Dim score As Singlescore = InputBox(請(qǐng)輸入學(xué)生的成績score:)If score 60 ThenPrint 不及格ElseIf score = 70

33、 ThenPrint 及格ElseIf score = 80 ThenPrint 中等ElseIf score = 90 ThenPrint 良好ElseIf score = 100 ThenPrint 優(yōu)秀ElsePrint 輸入錯(cuò)誤End IfEnd Sub 5Select Case語句多分支結(jié)構(gòu))語句多分支結(jié)構(gòu)) FTFF表達(dá)式表表達(dá)式表n語句塊語句塊n+1語句塊語句塊nT表達(dá)式表表達(dá)式表2語句塊語句塊2T表達(dá)式表表達(dá)式表1語句塊語句塊1圖圖 3.11 Select Case 3.11 Select Case 構(gòu)造構(gòu)造格式:格式:Select Case Select Case 測(cè)試變量或

34、表達(dá)式測(cè)試變量或表達(dá)式 Case Case 表達(dá)式表表達(dá)式表1 1 語句塊語句塊11 Case Case 表達(dá)式表表達(dá)式表2 2 語句塊語句塊22 Case Case 表達(dá)式表表達(dá)式表n n 語句塊語句塊nn Case Else Case Else 語句塊語句塊n+1n+1 End Select End Select功能:根據(jù)功能:根據(jù)Select Case Select Case 中的結(jié)果與中的結(jié)果與各各CaseCase子句中的值比較,決定執(zhí)行哪一組語句塊。如子句中的值比較,決定執(zhí)行哪一組語句塊。如果有多個(gè)果有多個(gè)CaseCase短語中的值與測(cè)試值匹配,則根據(jù)自上短語中的值與測(cè)試值匹配,則根

35、據(jù)自上而下判斷原則,只執(zhí)行第一個(gè)與之匹配的語句塊。而下判斷原則,只執(zhí)行第一個(gè)與之匹配的語句塊。闡明:闡明:如果在一個(gè)列表中有多個(gè)值,就用逗號(hào)把值隔開。例:如果在一個(gè)列表中有多個(gè)值,就用逗號(hào)把值隔開。例: 一個(gè)表達(dá)式。如:一個(gè)表達(dá)式。如:Case 6Case 6 一組用逗號(hào)隔開的枚舉值。如:一組用逗號(hào)隔開的枚舉值。如: Case 1Case 1,3 3,5 5,7 7表達(dá)式表達(dá)式1 TO 1 TO 表達(dá)式表達(dá)式2 2。如:。如: Case 1 To 10Case 1 To 10Is Is 關(guān)系運(yùn)算表達(dá)式。如關(guān)系運(yùn)算表達(dá)式。如 case is5case is5Private Sub Form_Cl

36、ick()Dim score As Singlescore = InputBox(請(qǐng)輸入學(xué)生的成績score;)Select Case scoreCase Is 60Print 不及格Case Is 70Print 及格Case Is 80Print 中等Case Is 90Print 良好Case Is = 100Print 優(yōu)秀Case ElsePrint 輸入錯(cuò)誤End SelectEnd Sub循環(huán)是在指定的條件下多次重復(fù)執(zhí)行一組語句,這循環(huán)是在指定的條件下多次重復(fù)執(zhí)行一組語句,這可通過循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)??赏ㄟ^循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。VB中提供了兩種類型的循環(huán)語句:中提供了兩種類型的循環(huán)語句:一

37、種是計(jì)數(shù)循環(huán)語句;另一種是條件循環(huán)語句。一種是計(jì)數(shù)循環(huán)語句;另一種是條件循環(huán)語句。Visual Basic 支持的循環(huán)結(jié)構(gòu)有:支持的循環(huán)結(jié)構(gòu)有: For.Next DoLoop WhileWend3.2.3 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 1. For Next循環(huán)循環(huán)循環(huán)體循環(huán)體Exit For循環(huán)體循環(huán)體循環(huán)變量增加步長循環(huán)變量增加步長循環(huán)變量獲得初值循環(huán)變量獲得初值FT循環(huán)變量在終值循環(huán)變量在終值內(nèi)內(nèi)ForFor循環(huán)的執(zhí)行過程循環(huán)的執(zhí)行過程格式:格式:For For 循環(huán)變量循環(huán)變量 = = 初值初值 To To 終值終值 Step Step 步長步長 Exit For Exit For Next N

38、ext 循環(huán)變量循環(huán)變量 闡明:闡明: 格式中的參數(shù)說明:格式中的參數(shù)說明: 循環(huán)變量必須為數(shù)值型。循環(huán)變量必須為數(shù)值型。 循環(huán)的初值、終值和步長都是數(shù)值表達(dá)式,其中,增循環(huán)的初值、終值和步長都是數(shù)值表達(dá)式,其中,增量參數(shù)可正可負(fù)。如果增量為正,則初值必須小于等于終量參數(shù)可正可負(fù)。如果增量為正,則初值必須小于等于終值;如果增量為負(fù),則初值必須大于等于終值。如果沒有值;如果增量為負(fù),則初值必須大于等于終值。如果沒有設(shè)置設(shè)置stepstep,則增量默認(rèn)為,則增量默認(rèn)為1 1。 Exit ForExit For為強(qiáng)行退出循環(huán)語句。當(dāng)遇到該語句時(shí),退為強(qiáng)行退出循環(huán)語句。當(dāng)遇到該語句時(shí),退出循環(huán),執(zhí)行出

39、循環(huán),執(zhí)行NextNext的下一個(gè)語句。的下一個(gè)語句。 當(dāng)循環(huán)是單層循環(huán)時(shí),當(dāng)循環(huán)是單層循環(huán)時(shí),NextNext后面的循環(huán)變量可以不寫。后面的循環(huán)變量可以不寫。例:3-8 求階乘。Private Sub Form_Click()Dim i%, f&, n%n = InputBox(輸入正整數(shù):, 輸入提示, 10)f = 1For i = 1 To nf = f * iNextPrint n; !=; fEnd Sub 2. Do.Loop循環(huán)循環(huán) DoLoop DoLoop循環(huán)用于事先不知道循環(huán)次數(shù)的循環(huán)結(jié)構(gòu)。循環(huán)用于事先不知道循環(huán)次數(shù)的循環(huán)結(jié)構(gòu)。此種語句四種語法格式:此種語句四種語

40、法格式: . Do While Loop . Do While Loop 語句語句 . Do Loop While . Do Loop While 語句語句 . Do Until Loop . Do Until Loop 語句語句 . Do Loop Until . Do Loop Until 語句語句格式:格式:Do While Do While 條件表達(dá)式條件表達(dá)式 循環(huán)體循環(huán)體 Exit Do Exit Do 循環(huán)體循環(huán)體 Loop Loop . Do While Loop語句語句TF條件條件循環(huán)體循環(huán)體Do While LoopDo While Loop語句流程圖語句流程圖闡明:闡明:

41、1 1、 循環(huán)體中要有控制循環(huán)的語句,以避免出現(xiàn)死循環(huán)。循環(huán)體中要有控制循環(huán)的語句,以避免出現(xiàn)死循環(huán)。2 2、由于該循環(huán)的特點(diǎn)是先判斷條件,然后再?zèng)Q定是否要執(zhí)行循、由于該循環(huán)的特點(diǎn)是先判斷條件,然后再?zèng)Q定是否要執(zhí)行循環(huán)體里的語句。環(huán)體里的語句。3 3、Exit Do Exit Do 表示當(dāng)遇到該語句時(shí),強(qiáng)制退出循環(huán),執(zhí)行表示當(dāng)遇到該語句時(shí),強(qiáng)制退出循環(huán),執(zhí)行LoopLoop后的下一條語句。后的下一條語句。 Private Sub cmdDoWhileLoop_Click() Dim i As Integer Dim Total As Long Do until i 100 Total = To

42、tal + i*i i = i + 1 Loop Print Total End Sub例例 求求1到到100之間所有自然數(shù)的平方和。之間所有自然數(shù)的平方和。 即即10012ii【例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ù)。編寫窗體單擊事件過程代碼如下:Private Sub Form_

43、Click() Dim A As Integer, B As Integer, N As Integer, M As Integer, R As Integer, T As Integer M = InputBox(請(qǐng)輸入第一個(gè)正整數(shù)M,求M、N最大公約數(shù)和最小公倍數(shù)) N = InputBox(請(qǐng)輸入第二個(gè)正整數(shù)N,求M、N最大公約數(shù)和最小公倍數(shù)) A = M: B = N If M N Then 使M中存放較大的數(shù),N中存放較小的數(shù) T = M M = N N = T End If R = M Mod N Do While R 0 M = N N = R R = M Mod N Loop Print 最大公約數(shù)為:, N Print 最小公倍數(shù)為:, A * B / NEnd SubTF條件條件循環(huán)體循環(huán)體DoLoop WhileDoLoop While語句流程圖語句流程圖格式:格式: DoDo 循環(huán)體循環(huán)體 Exit Do Exit Do 循環(huán)體循環(huán)體 Loop WhileLoop While條件表達(dá)式條件表達(dá)式 . Do Loop While語句語句闡明:闡明: 至少要執(zhí)行循環(huán)體一次。至少要執(zhí)行循環(huán)體一次。 與與Do WhileDo While循環(huán)的區(qū)別:循環(huán)的區(qū)別:Do

溫馨提示

  • 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)論