第3章基本知識(shí)_第1頁(yè)
第3章基本知識(shí)_第2頁(yè)
第3章基本知識(shí)_第3頁(yè)
第3章基本知識(shí)_第4頁(yè)
第3章基本知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

VB.NET程序設(shè)計(jì)實(shí)訓(xùn)教程第3章基本知識(shí)3.1數(shù)據(jù)類(lèi)型3.2運(yùn)算符3.3VB中的常用內(nèi)部函數(shù)3.4VB中的三種程序結(jié)構(gòu)3.5實(shí)訓(xùn)練習(xí)33.1數(shù)據(jù)類(lèi)型3.1.1常量與變量1.常量:在程序執(zhí)行過(guò)程中保持不變的數(shù)據(jù)稱為常量。(1)普通常量①數(shù)值常量:即數(shù)學(xué)中的常數(shù)。例如:3.14。②字符串常量:用雙引號(hào)括起來(lái)的字符序列。③邏輯常量:只有兩個(gè)值True和False。④日期常量:用于表示某一具體的日期和時(shí)間,用符號(hào)#括起來(lái)。例如:#3jan,98#、#08/12/2005#等。(2)符號(hào)常量:用一個(gè)符號(hào)來(lái)表示一個(gè)固定不變的量。格式:Const符號(hào)常量名[As數(shù)據(jù)類(lèi)型]=表達(dá)式例如:ConstPI=3.14159262.變量:程序運(yùn)行過(guò)程中其值可以改變的量。(1)用類(lèi)型說(shuō)明語(yǔ)句定義變量。Public|Dim|Static|<變量名>[As<數(shù)據(jù)類(lèi)型符>][,<變量名>[As<數(shù)據(jù)類(lèi)型符>]…]例如:④Dim語(yǔ)句定義的變量,其作用范圍由Dim語(yǔ)句所在的位置決定。分為窗體級(jí)變量、過(guò)程級(jí)變量(局部變量)。DimaAsIntegerDimbAsLong(2)變量的隱性聲明:不聲明變量即可直接引用。OptionExplicitOff(系統(tǒng)默認(rèn)OptionExplicitOn,即先聲明后引用)合并為:DimaAsInteger,bAsLong3.1.2數(shù)值型數(shù)據(jù)類(lèi)型1.整型(1)整型(Integer,類(lèi)型符%):在計(jì)算機(jī)內(nèi)一般用2個(gè)字節(jié)來(lái)表示整數(shù),取值范圍是-32768到+32767。例如:10,-35,56%都是整數(shù)型,而50000%則會(huì)發(fā)生溢出錯(cuò)誤。(2)長(zhǎng)整型(Long,類(lèi)型符&):在計(jì)算機(jī)內(nèi)一般用4個(gè)字節(jié)來(lái)表示整數(shù),取值范圍是-2147483648到+2147483647。例如:123450,98765&都是長(zhǎng)整型數(shù)。(3)字節(jié)型(Byte):用1個(gè)字節(jié)表示,取值范圍0到255。2.實(shí)型(1)單精度浮點(diǎn)數(shù)(Single,類(lèi)型符!):在計(jì)算機(jī)中一般用4個(gè)字節(jié)來(lái)表示單精度浮點(diǎn)數(shù),取值范圍為±1.40E-45~±3.40E+38。例如:3.1415!,2.123456都是單精度浮點(diǎn)數(shù)。(2)雙精度浮點(diǎn)數(shù)(Double,類(lèi)型符#):在計(jì)算機(jī)中一般用8個(gè)字節(jié)來(lái)表示雙精度浮點(diǎn)數(shù),其取值范圍為±4.94E-324~±1.80E+308。3.1.3字符型數(shù)據(jù)類(lèi)型字符型數(shù)據(jù)(String,類(lèi)型符$):用雙引號(hào)括起。例如:DimStuNameAsString3.1.4日期及邏輯型數(shù)據(jù)類(lèi)型1.邏輯型:邏輯型數(shù)據(jù)(Boolean)只有兩個(gè)值:True(真)和False(假)。邏輯型數(shù)據(jù)可以轉(zhuǎn)換成數(shù)值型數(shù)據(jù),True轉(zhuǎn)為-1,F(xiàn)alse轉(zhuǎn)為0。也可以把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為邏輯型數(shù)據(jù),此時(shí),非0的數(shù)據(jù)轉(zhuǎn)換為T(mén)rue,0轉(zhuǎn)換為False。

2.日期型日期型數(shù)據(jù)(Date):在計(jì)算機(jī)中一般用8個(gè)字節(jié)的浮點(diǎn)數(shù)來(lái)表示一個(gè)日期型數(shù)據(jù)。日期的取值范圍從公元100年1月1日到9999年12月31日,時(shí)間的取值范圍從00:00:00到23:59:59??梢杂?括起來(lái)放置日期和時(shí)間。例如:#08/06/201510:25:00pm#。3.2運(yùn)算符運(yùn)算符含義優(yōu)先級(jí)算術(shù)表達(dá)式例子結(jié)果^乘方15^225-負(fù)號(hào)2-8-8*乘35*525/除35/31.66666666666667\整除45\31Mod取模55Mod32+加63+58-減63-5-23.2.1算術(shù)運(yùn)算符3.2.2字符串連接運(yùn)算符字符串運(yùn)算符“+”和“&”的作用是將兩個(gè)操作數(shù)連接起來(lái),成為一個(gè)字符串?!?”運(yùn)算符是要求參與運(yùn)算的兩個(gè)數(shù)據(jù)必須是字符型數(shù)據(jù)。例如,”abcd”+”efg”的結(jié)果是“abcdefg”,而”abcd”+123是錯(cuò)誤的?!?”是將參與運(yùn)算的兩個(gè)數(shù)據(jù)強(qiáng)制性地按字符串類(lèi)型連接在一起,生成一個(gè)新的字符串。參與運(yùn)算的兩個(gè)數(shù)據(jù)可以是字符型、數(shù)值型和可變型數(shù)據(jù)。例如,”abcd”+”123”的結(jié)果是“abcd123”,而”abcd”&123也是“abcd123”。在使用“&”時(shí),應(yīng)在變量和“&”之間加一個(gè)空格。

關(guān)系運(yùn)算符含義關(guān)系表達(dá)式結(jié)果=等于3=4False>

大于3>4False>=大于等于3>=4False<

小于3<4True<=小于等于3<=4True<>或><不等于3<>4True3.2.3關(guān)系運(yùn)算符關(guān)系運(yùn)算的結(jié)果是邏輯型的值。當(dāng)關(guān)系成立時(shí),結(jié)果為T(mén)rue;當(dāng)關(guān)系不成立時(shí),結(jié)果為False。

(1)如果兩個(gè)操作數(shù)為數(shù)值型,則按其大小比較。(2)如果兩個(gè)操作數(shù)為字符型,則按字符的ASCII碼值從左到右一一比較,直到出現(xiàn)不同的字符為止。(3)關(guān)系運(yùn)算符的優(yōu)先級(jí)相同。邏輯運(yùn)算符含義關(guān)系表達(dá)式結(jié)果And邏輯與(當(dāng)且僅當(dāng)參與運(yùn)算的兩個(gè)數(shù)都為T(mén)rue時(shí),運(yùn)算結(jié)果為T(mén)rue)。4>3And5<64>3And6<5TrueFalseOr邏輯或(當(dāng)且僅當(dāng)參與運(yùn)算的兩個(gè)數(shù)都為False時(shí),運(yùn)算結(jié)果為False)。4>3Or6<54<3Or6<5TrueFalseNot邏輯非(當(dāng)參與運(yùn)算的數(shù)為False時(shí),運(yùn)算結(jié)果為T(mén)rue;當(dāng)參與運(yùn)算的數(shù)為T(mén)rue時(shí),運(yùn)算結(jié)果為False)。3>4Not3>4FalseTrueXor異或(當(dāng)且僅當(dāng)參與運(yùn)算的兩個(gè)數(shù)的邏輯值相異時(shí),運(yùn)算結(jié)果為T(mén)rue)。4>3Xor6>54>3Xor5>6FalseTrue3.2.4邏輯運(yùn)算符邏輯運(yùn)算符是對(duì)操作數(shù)進(jìn)行邏輯運(yùn)算,運(yùn)行的結(jié)果為邏輯型數(shù)據(jù)。當(dāng)邏輯關(guān)系成立時(shí),運(yùn)算結(jié)果為T(mén)rue;當(dāng)邏輯關(guān)系不成立時(shí),運(yùn)算結(jié)果為False。3.3VB中的常用內(nèi)部函數(shù)VB提供了大量的內(nèi)部函數(shù),并把這些內(nèi)部函數(shù)都寫(xiě)成語(yǔ)言庫(kù)中的一個(gè)個(gè)子程序,供用戶隨時(shí)調(diào)用,同時(shí)也允許用戶自定義函數(shù)過(guò)程。這些函數(shù)都有一個(gè)或多個(gè)參數(shù),對(duì)這些參數(shù)進(jìn)行特定的運(yùn)算,返回一個(gè)結(jié)果值,叫函數(shù)值。函數(shù)調(diào)用的一般格式如下:<函數(shù)名>([<參數(shù)表>])其中“參數(shù)表”可以有一個(gè)參數(shù)或逗號(hào)隔開(kāi)的多個(gè)參數(shù)。3.3.1數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù)包含在Math類(lèi)中。用于各種算數(shù)運(yùn)算。在程序中要使用某個(gè)數(shù)學(xué)函數(shù)時(shí),要在其函數(shù)名前面加上“Math.”,或者再模塊的聲明部分使用如下語(yǔ)句:ImportsSystem.Math(1)取整函數(shù)Ceiling(x):求不小于x的最大整數(shù)。例如,Ceiling(5.5)的結(jié)果是6,而Ceiling(-2.8)的結(jié)果是-2。(2)四舍五入取整函數(shù)Round(x):對(duì)x進(jìn)行四舍五入取整。例如,Round(5.6)的結(jié)果是6,而Round(5.4)的結(jié)果是5。(3)平方根函數(shù)Sqr(x):求x的算術(shù)平方根。x為數(shù)值型參數(shù),且x>=0。返回的函數(shù)值為一個(gè)非負(fù)數(shù)值。例如,Sqr(16)的結(jié)果為4;而Sqr(-16)將提示錯(cuò)誤信息。(4)絕對(duì)值函數(shù)Abs(x):求x的絕對(duì)值。例如,Abs(-5)與Abs(5)的結(jié)果都是5。(5)符號(hào)函數(shù)Sign(x):求x的符號(hào)值。當(dāng)x<0時(shí),返回的函數(shù)值為-1;當(dāng)x=0時(shí),返回的函數(shù)值為0;當(dāng)x>0時(shí),返回的函數(shù)值為1。例如,Sign(5)結(jié)果為1;Sign(-5)結(jié)果為-1;而Sign(0)結(jié)果為0。(6)指數(shù)函數(shù)Exp(x):求e的x次方的值,x為數(shù)值型參數(shù)。例如,Exp(1)結(jié)果為。(7)以e為底的對(duì)數(shù)函數(shù)Log(x)x為數(shù)值型參數(shù),且x>0。例如:Log(2.718281)結(jié)果近似于1。(8)三角函數(shù)Sin(x)、Cos(x)、Tan(x)、Atn(x)分別用來(lái)計(jì)算x的正弦值、余弦值、正切值和反正切值。注意對(duì)于前三項(xiàng)來(lái)講,x代表一個(gè)弧度,而最后一項(xiàng)的返回值也是弧度。例如,Sin(450)應(yīng)寫(xiě)成Sin(450*3.14/180)。(9)求最大值函數(shù)Max(x,y)求x和y中的較大值。(10)求最小值函數(shù)Min(x,y)求x和y中的較小值。3.3.2字符型函數(shù)(1)大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母函數(shù)Lcase(c):數(shù)將字符串c中的大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母,其他字符不變。例如,LCase("ABcdeF")的結(jié)果為"abcdef"(2)小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母函數(shù)Ucase(c):將字符串c中的小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母,其他字符不變。例如,UCase("AbcdeF")的結(jié)果為"ABCDEF"。(3)求字符串長(zhǎng)度函數(shù)Len(c):求字符串c的長(zhǎng)度,即c中所包含的字符的個(gè)數(shù),函數(shù)返回值為整數(shù)。例如,Len("ABCDE")的結(jié)果為5(4)取左子串函數(shù)Left(c,n):返回字符串c左邊的n個(gè)字符。其中c為字符串類(lèi)型的參數(shù),n為數(shù)值型參數(shù)。例如,Left("ABCDEFG",3)的結(jié)果為"ABC"(5)取右子串函數(shù)Right(c,n):返回字符串c右邊的n個(gè)字符。例如,Right("ABCDEFG",3)的結(jié)果為"EFG"(6)取子字符串函數(shù)Mid(c,n1,n2):自字符串c的第n1個(gè)字符開(kāi)始向右取n2個(gè)連續(xù)的字符。其中c為字符串類(lèi)型的參數(shù),n1、n2為數(shù)值型參數(shù)。當(dāng)省略n2時(shí),則得到的是從n1開(kāi)始的往后所有字符。例如,Mid("ABCDEFG",3,4)的結(jié)果為"CDEF"。(7)刪除空白字符函數(shù)Ltrim(c)、Rtrim(c)、Trim(c)去掉字符串c左邊、右邊、左右邊的空格。夾在字符串中間的字符不能被去掉。例如,LTrim("└┘└┘ABCDEF└┘└┘")的結(jié)果為"ABCDEF└┘└┘";RTrim("└┘└┘ABCDEF└┘└┘")的結(jié)果為"└┘└┘ABCDEF";Trim("└┘└┘ABCDEF└┘└┘")的結(jié)果為"ABCDEF"。(8)搜索子字符串函數(shù)InStr([n1,]c1,c2[,n2])找出一個(gè)字符串在另一個(gè)字符串中最先出現(xiàn)的位置。其中n1和n2均為可選參數(shù)。n1表示開(kāi)始搜索的位置(默認(rèn)值為1),n2默認(rèn)為0,表示區(qū)分大小寫(xiě);若n2為1,則不分大小寫(xiě)。函數(shù)返回值為一整數(shù)。在字符串c1中從第n1個(gè)字符開(kāi)始查找字符串c2(默認(rèn)是從頭開(kāi)始找)。若找到了,則返回位置值;若找不到,則返回0。例如,Instr(3,"AB12a34A56","A")的結(jié)果為8,Instr(3,"AB12a34A56","A",1)的結(jié)果為5,而Instr("AB12a34A56","A")的結(jié)果為1。(9)生成空格函數(shù)Space(n)產(chǎn)生由n個(gè)空格組成的字符串。n為數(shù)值型參數(shù),函數(shù)返回值是一個(gè)全部由空格組成的字符串。

例如,Space(3)的結(jié)果是"└┘└┘└┘"。3.3.3日期與時(shí)間函數(shù)(1)返回系統(tǒng)當(dāng)前日期及時(shí)間函數(shù)Now()。Today()函數(shù)返回系統(tǒng)的當(dāng)前日期。TimeOfDay()函數(shù)返回系統(tǒng)的當(dāng)前時(shí)間。(2)返回年月日函數(shù)DatePart()。例如,DatePart("yyyy",Today)返回當(dāng)前日期的年份。DatePart("m",Today)返回當(dāng)前日期的月份。DatePart("d",Today)返回當(dāng)前日期的具體哪日。(3)返回星期幾的函數(shù)WeekDay(d)。返回日期型參數(shù)d的星期號(hào)。其中星期日為1,星期一、星期二……星期六依次為2、3…7。(4)返回小時(shí)、分鐘、秒的函數(shù)Hour(t)、Minute(t)、Second(t)【例3-1】日期與時(shí)間函數(shù)舉例。在窗體上添加1個(gè)命令按鈕Button1及4個(gè)標(biāo)簽控件。PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.ClickDimxAsDate,aAsInteger,bAsIntegerDimyy1AsInteger,mm1AsInteger,dd1,hh1,mm2,ss1x=#4/1/2016#a=DateDiff("d",Today(),x):b=Weekday(x)yy1=DatePart("yyyy",Today):mm1=DatePart("m",Today)dd1=DatePart("d",Today)hh1=Hour(Now()):mm2=Minute(Now())ss1=Second(Now())Label1.Text="現(xiàn)在距離2016年愚人節(jié)還有:"&a&"天"Label2.Text="2016年愚人節(jié)是星期"&b-1Label3.Text="今天的日期是:"&yy1&"年"&mm1&"月"&dd1&"日"Label4.Text="現(xiàn)在的時(shí)間是:"&hh1&"時(shí)"&mm2&"分"&ss1&"秒"EndSub函數(shù)名含義函數(shù)舉例CBool將參數(shù)轉(zhuǎn)換成邏輯型CBool(-8)

的結(jié)果為T(mén)rue,而CBool(0)的結(jié)果為FalseCChar將參數(shù)轉(zhuǎn)換成字符型CChar("adf")結(jié)果為"a"CDate將有效的日期字符串轉(zhuǎn)換成日期CDate("5/7/2016")結(jié)果為日期CInt將數(shù)字型數(shù)據(jù)的小數(shù)部分四舍五入取整CInt(56.68)結(jié)果為57CDbl將數(shù)字型數(shù)據(jù)轉(zhuǎn)換成雙精度型CDbl(4)轉(zhuǎn)換為雙精度型數(shù)據(jù)4CSng將數(shù)字型數(shù)據(jù)轉(zhuǎn)換成單精度型CDbl(4)轉(zhuǎn)換為單精度型數(shù)據(jù)4CStr將參數(shù)轉(zhuǎn)換成字符串CStr(123)轉(zhuǎn)換為"123"3.3.4轉(zhuǎn)換函數(shù)3.3.5隨機(jī)函數(shù)Rnd(n)隨機(jī)產(chǎn)生一個(gè)在區(qū)間(0,1)內(nèi)的浮點(diǎn)數(shù)。要先使用語(yǔ)句Randomize()初始化隨機(jī)數(shù)發(fā)生器,當(dāng)n>0時(shí),每次產(chǎn)生的隨機(jī)數(shù)都不同;當(dāng)n=0時(shí),每次產(chǎn)生的隨機(jī)數(shù)都與上次的相同;當(dāng)n<0時(shí),每次產(chǎn)生的隨機(jī)數(shù)都相同?!纠?-2】在窗體上添加1個(gè)命令按鈕和4個(gè)標(biāo)簽控件。PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.ClickRandomize()Label1.Text=Rnd(3)Label2.Text=Rnd(0)Label3.Text=Rnd(3)Label4.Text=Rnd(0)EndSub幾個(gè)產(chǎn)生隨機(jī)整數(shù)的技巧。CInt(Rnd*n):產(chǎn)生0,1,…,n-1中的一個(gè)隨機(jī)整數(shù)。CInt(Rnd*n)+1:產(chǎn)生1,…,n中的一個(gè)隨機(jī)整數(shù)。CInt(Rnd*(n-m+1)+m產(chǎn)生一個(gè)在區(qū)間[m,n]內(nèi)的隨機(jī)整數(shù)。【例3-3】小學(xué)生加法運(yùn)算題。在窗體上添加3個(gè)文本框和2個(gè)命令按鈕,當(dāng)單擊“出題”時(shí),分別在TextBox1和TextBox2中生成兩個(gè)介于10和20之間的隨機(jī)整數(shù)。當(dāng)單擊“求和”時(shí),在TextBox3中顯示兩個(gè)整數(shù)之和。PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.ClickRandomize()TextBox1.Text=10+Int(Rnd(3)*11)TextBox2.Text=10+Int(Rnd(3)*11)EndSubPrivateSubButton2_Click(senderAsObject,eAsEventArgs)HandlesButton2.ClickTextBox3.Text=Val(TextBox1.Text)+Val(TextBox2.Text)EndSub3.4

VB中的3種程序結(jié)構(gòu)3.4.1順序結(jié)構(gòu)1.賦值語(yǔ)句格式1:<變量名>=<表達(dá)式>格式2:[<對(duì)象名>.]<屬性名>=<表達(dá)式>例如:a=10'把10賦給ab=a*5'計(jì)算a*5的值,得50,把50賦給bch$="Hello" '把“Hello”賦給ch$Button1.Text="確定"'把“確定”賦給Button1的Text屬性【例3-4】給出矩形的長(zhǎng)和寬,單擊命令按鈕時(shí)在文本框中顯示矩形的面積。

PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.Clicka=15b=25TextBox1.Text=a*bEndSub2.使用輸入框(InputBox函數(shù))輸入數(shù)據(jù)賦值語(yǔ)句具有一定的局限性。VB另外提供了一種輸入數(shù)據(jù)的方法,可以在程序運(yùn)行時(shí)為變量賦值。格式:InputBox(<提示信息>[,<對(duì)話框標(biāo)題>][,<默認(rèn)值>][,<X坐標(biāo)>][,<Y坐標(biāo)>])產(chǎn)生一個(gè)對(duì)話框,等待用戶輸入并返回所輸入的內(nèi)容。(1)<提示信息>:是一個(gè)字符串表達(dá)式。如果要顯示多行信息,可用回車(chē)換行符的組合Chr(13)&Chr(10)來(lái)分隔。(2)<對(duì)話框標(biāo)題>:顯示在標(biāo)題欄中作為對(duì)話框的標(biāo)題。(3)<默認(rèn)值>:字符串表達(dá)式。缺省為空。(4)<X坐標(biāo)>:對(duì)話框左邊與屏幕左邊的距離。(5)<Y坐標(biāo)>:對(duì)話框上邊與屏幕上邊的垂直距離。如果省略,屏幕垂直方向距下邊1/3的位置顯示。(6)該函數(shù)的返回值默認(rèn)為字符串類(lèi)型?!纠?-5】用InputBox給出矩形的長(zhǎng)和寬,單擊命令按鈕時(shí)在文本框中顯示矩形的面積。PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.ClickDimaAsInteger,bAsIntegera=InputBox("請(qǐng)輸入長(zhǎng)度","計(jì)算面積",10)b=InputBox("請(qǐng)輸入寬度","計(jì)算面積",20)TextBox1.Text=a*bEndSub運(yùn)行后單擊命令按鈕會(huì)出現(xiàn)兩次InputBox對(duì)話框,分別輸入10和20。3.用消息框(MsgBox)輸出數(shù)據(jù)消息框可以向用戶傳送信息,并可以通過(guò)用戶在對(duì)話框上的選擇識(shí)別用戶所作的響應(yīng),作為程序繼續(xù)執(zhí)行的依據(jù)。(1)MsgBox函數(shù)格式:MsgBox(<提示信息>[,<按鈕類(lèi)型>][,<對(duì)話框標(biāo)題>])①<提示信息>:字符串表達(dá)式,該字符串的內(nèi)容將在對(duì)話框上顯示,作為系統(tǒng)提示信息。②<按鈕類(lèi)型>:數(shù)值型數(shù)據(jù),可選項(xiàng)。用來(lái)指定對(duì)話框中出現(xiàn)的按鈕和圖標(biāo)的種類(lèi)及數(shù)量?!鞍粹o數(shù)值”是3個(gè)數(shù)值之和,這3個(gè)數(shù)值分別代表按鈕的數(shù)目和類(lèi)型、使用的圖標(biāo)樣式以及默認(rèn)按鈕的位置。不同的組合會(huì)得到不同的結(jié)果。③<對(duì)話框標(biāo)題>:顯示在對(duì)話框的標(biāo)題欄。分類(lèi)按鈕值系統(tǒng)符號(hào)常量含義

按鈕類(lèi)型

0VbOKOnly只顯示“確定”按鈕1VbOKCancel顯示“確定”和“取消”按鈕2VbAbortRetrylgnore顯示“終止”、“重試”和“忽略”按鈕3VbYesNoCancel顯示“是”、“否”和“取消”按鈕4VbYesNo顯示“是”和“否”按鈕5VbRetryCancel顯示“重試”和“取消”按鈕

圖標(biāo)類(lèi)型

16VbCritical顯示CriticalMessage圖標(biāo)x32VbQuestion顯示W(wǎng)arningQuery圖標(biāo)?48VbExclamation顯示W(wǎng)arningMessage圖標(biāo)!64VbInformation顯示InformationMessage圖標(biāo)i

默認(rèn)按鈕0VbDefaultButton1第1個(gè)按鈕是默認(rèn)值256VbDefaultButton2第2個(gè)按鈕是默認(rèn)值512VbDefaultButton3第3個(gè)按鈕是默認(rèn)值768VbDefaultButton4第4個(gè)按鈕是默認(rèn)值④MsgBox函數(shù)的返回值是一個(gè)整數(shù),這個(gè)整數(shù)與所選擇的命令按鈕有關(guān),可以通過(guò)返回的這個(gè)整數(shù)的數(shù)值確定用戶在對(duì)話框中單擊的是哪個(gè)按鈕,即用戶在對(duì)話框中作出了什么響應(yīng)。其返回值如下表所示。系統(tǒng)符號(hào)常量返回值按下的按鈕VbOK1確定VbCancel2取消VbAbort3終止VbRetry4重試Vblgnore5忽略VbYes6是VbNo7否例如,下面語(yǔ)句使用MsgBox函數(shù)彈出的消息框顯示“確定”、“重試”、“忽略”按鈕,設(shè)第2個(gè)按鈕是默認(rèn)按鈕。a=MsgBox("提示信息",2+256,"標(biāo)題內(nèi)容")下面語(yǔ)句使用MsgBox函數(shù)彈出的消息框顯示警告圖標(biāo)。如圖3-6中的右圖所示。a=MsgBox("提示信息",48,"標(biāo)題內(nèi)容")(2)MsgBox語(yǔ)句MsgBox函數(shù)也可以寫(xiě)成語(yǔ)句形式。格式:MsgBox<提示信息>[,<按鈕類(lèi)型>][,<對(duì)話框標(biāo)題>]MsgBox語(yǔ)句和MsgBox函數(shù)實(shí)現(xiàn)的功能相同,只是沒(méi)有返回值,因而通常用于較簡(jiǎn)單的信息輸出。例如:MsgBox"添加成功",vbInformation,"數(shù)據(jù)維護(hù)"4.注釋、暫停與程序結(jié)束語(yǔ)句(1)注釋語(yǔ)句為了提高程序的可讀性,可以在程序的適當(dāng)位置加上必要的注釋?zhuān)瑢?duì)語(yǔ)句的功能加以解釋。格式:'<注釋內(nèi)容>或REM<注釋內(nèi)容>(2)暫停語(yǔ)句暫停語(yǔ)句用來(lái)暫停程序的執(zhí)行。格式:STOP(3)結(jié)束語(yǔ)句結(jié)束語(yǔ)句用來(lái)結(jié)束程序的執(zhí)行。格式:End3.4.2分支結(jié)構(gòu)1.行If語(yǔ)句格式:If<條件表達(dá)式>Then<語(yǔ)句組1>[Else<語(yǔ)句組2>]當(dāng)條件成立(為T(mén)rue)時(shí),執(zhí)行語(yǔ)句組1;條件不成立(為False)時(shí),執(zhí)行語(yǔ)句組2。(1)<條件表達(dá)式>是一個(gè)有邏輯值的表達(dá)式,其返回結(jié)果必須是True或False。(2)<語(yǔ)句組1>、<語(yǔ)句組2>可以有多條語(yǔ)句,各語(yǔ)句之間用冒號(hào)隔開(kāi)。例如:Ifx>0Thena=b:b=a+bElsea=b:b=a-b(3)Else及其后面的部分是可選項(xiàng)。例如:Ifx>0Thent=x:x=y:y=t【例3-6】輸入一個(gè)百分制的成績(jī),當(dāng)成績(jī)大于60時(shí)顯示“及格”,否則顯示“不及格”。PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.ClickDimaAsIntegera=InputBox("請(qǐng)輸入成績(jī)")Ifa>=60ThenTextBox1.Text=“及格”Else_

TextBox1.Text="不及格"EndSub單行結(jié)構(gòu)條件語(yǔ)句應(yīng)作為一條語(yǔ)句書(shū)寫(xiě)。如果語(yǔ)句太長(zhǎng)需要換行,必須在折行處使用續(xù)行符號(hào),即空格加下劃線。2.塊If語(yǔ)句(If...Then語(yǔ)句)格式:If<條件表達(dá)式>Then[<語(yǔ)句組1>][Else[<語(yǔ)句組2>]]EndIf如果條件成立,則執(zhí)行Then后面的語(yǔ)句組1;如果條件不成立,則執(zhí)行Else后面的語(yǔ)句組2。使用該語(yǔ)句時(shí),應(yīng)該注意以下問(wèn)題。①整個(gè)塊結(jié)構(gòu)必須以If開(kāi)始,以EndIf結(jié)束。②塊If語(yǔ)句中Then后面的語(yǔ)句不能與其寫(xiě)在同一行上,否則必須加上分隔符。③塊結(jié)構(gòu)中的<語(yǔ)句組2>可以省略?!纠?-7】火車(chē)站行李費(fèi)的收費(fèi)標(biāo)準(zhǔn)是40kg以內(nèi)(包括40kg)0.50元/kg,超過(guò)部分為0.80元/kg。編寫(xiě)程序,根據(jù)輸入的任意重量,計(jì)算出應(yīng)付的行李費(fèi)。PrivateSubForm1_Click(senderAsObject,eAsEventArgs)HandlesMe.ClickDimweightAsSingle,payAsSingleweight=InputBox("請(qǐng)輸入行李重量","輸入框")Ifweight>40Thenpay=(weight-40)*0.8+40*0.5Elsepay=weight*0.5EndIfTextBox1.Text="行李重量="&weightTextBox2.Text="所付費(fèi)用="&payEndSub3.塊if語(yǔ)句的嵌套嵌套,即在上述結(jié)構(gòu)中的<語(yǔ)句組1>和<語(yǔ)句組2>部分仍然可以包含另外一個(gè)塊If語(yǔ)句。

(1)如果存在嵌套時(shí),語(yǔ)句中的每一個(gè)Else必須和一個(gè)If相對(duì)應(yīng),應(yīng)避免產(chǎn)生混亂。(2)每一個(gè)塊結(jié)構(gòu)都必須以If開(kāi)始,以EndIf結(jié)束。(3)內(nèi)層嵌套的塊結(jié)構(gòu)中除了滿足該層規(guī)定的條件外,還必須首先滿足外層結(jié)構(gòu)中相應(yīng)位置的條件。(4)VB中對(duì)塊嵌套的層數(shù)沒(méi)有限制,在嵌套的塊結(jié)構(gòu)中仍然可以繼續(xù)嵌套其他的塊結(jié)構(gòu),但嵌套時(shí)外層的塊結(jié)構(gòu)必須完全“包住”內(nèi)層的塊結(jié)構(gòu),不能相互交叉?!纠?-8】輸入系數(shù)a,b和c,求二次方程ax2+bx+c=0的實(shí)根。PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.ClickDimaAsInteger,bAsInteger,cAsIntegerDimdAsSingle,x1AsSingle,x2AsSingle,xAsSinglea=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+Math.Sqrt(d))/(2*a):x2=(-b-Math.Sqrt(d))/(2*a)Label1.Text="x1="&x1:Label2.Text="x2="&x2ElseIfd=0Thenx=-b/(2*a)MsgBox("此方程有兩個(gè)相等實(shí)根"&x)ElseMsgBox("此方程無(wú)實(shí)根")EndIfEndIfEndSub4.ElseIf子句If<條件表達(dá)式1>Then語(yǔ)句組1ElseIf<條件表達(dá)式2>Then語(yǔ)句組2……[Else語(yǔ)句組n+1]EndIf【例3-9】向文本框中輸入一個(gè)學(xué)生的成績(jī),根據(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ò)誤”。依次判斷條件表達(dá)式的值,如某一條件成立,則執(zhí)行其下面的語(yǔ)句組;如果所有條件均不成立,則執(zhí)行Else后面的語(yǔ)句組。在相應(yīng)語(yǔ)句組執(zhí)行完后,會(huì)跳過(guò)EndIf,執(zhí)行其后面的語(yǔ)句。PrivateSubForm1_Click(senderAsObject,eAsEventArgs)HandlesMe.ClickDimscoreAsSinglescore=TextBox1.TextIfscore<60ThenLabel1.Text="不及格"ElseIfscore<=70ThenLabel1.Text="及格"ElseIfscore<=80ThenLabel1.Text="中等"ElseIfscore<=90ThenLabel1.Text="良好"ElseIfscore<=100ThenLabel1.Text="優(yōu)秀"ElseLabel1.Text="輸入錯(cuò)誤"EndIfEndSub5.SelectCase語(yǔ)句格式:SelectCase<測(cè)試表達(dá)式>[Case<表達(dá)式列表1>[<語(yǔ)句組1>]][Case<表達(dá)式列表3>[<語(yǔ)句組2>]]…[Case<表達(dá)式列表n>[<語(yǔ)句組n>]][CaseElse[<語(yǔ)句組n+1>]]EndSelect該語(yǔ)句根據(jù)“測(cè)試表達(dá)式”的值,選擇第一個(gè)符合條件的語(yǔ)句組執(zhí)行。先求“測(cè)試表達(dá)式”的值,然后順序測(cè)試該值符合哪一個(gè)Case子句中情況。如果找到了,則執(zhí)行該Case子句下面的語(yǔ)句組,然后執(zhí)行EndSelect下面的語(yǔ)句;如果沒(méi)找到,則執(zhí)行CaseElse下面的語(yǔ)句組,然后執(zhí)行EndSelect下面的語(yǔ)句。(1)“測(cè)試表達(dá)式”可以是數(shù)值表達(dá)式或字符串表達(dá)式。(2)“表達(dá)式列表”與“測(cè)試表達(dá)式”的類(lèi)型必需相同。(3)“表達(dá)式列表”形式有以下3種。①一個(gè)表達(dá)式或用逗號(hào)隔開(kāi)的若干表達(dá)式。例如:Case1,3,5'表示條件在1,3,5范圍內(nèi)取值

②表達(dá)式1To表達(dá)式2。例如:Case60To80'表示條件取值范圍為60~80③Is關(guān)系運(yùn)算符表達(dá)式。例如:CaseIs<5'表示條件在小于5范圍取值【例3-10】用SelectCase語(yǔ)句完成例3-9。

PrivateSubForm1_Click(senderAsObject,eAsEventArgs)HandlesMe.ClickDimscoreAsSinglescore=TextBox1.TextSelectCasescoreCaseIs<60Label1.Text="不及格"CaseIs<=70Label1.Text="及格"CaseIs<=80Label1.Text="中等"CaseIs<=90Label1.Text="良好"CaseIs<=100Label1.Text="優(yōu)秀"CaseElseLabel1.Text="輸入錯(cuò)誤"EndSelectEndSub3.4.3循環(huán)結(jié)構(gòu)1.For循環(huán)格式:For<循環(huán)變量>=<初值>To<終值>[Step<步長(zhǎng)>][<循環(huán)體>]Next[<循環(huán)變量>](1)對(duì)格式的說(shuō)明如下。①<循環(huán)變量>亦稱為循環(huán)控制變量,必須為數(shù)值型。②<初值>和<終值>都是數(shù)值型,可以是數(shù)值表達(dá)式。若為實(shí)數(shù),則自動(dòng)取整。③<步長(zhǎng)>是循環(huán)變量的增量,是一個(gè)數(shù)值表達(dá)式。步長(zhǎng)不能是0。如果步長(zhǎng)是1,Step1可略去不寫(xiě)。④<循環(huán)體>是在For和Next之間的一條或多條語(yǔ)句。<循環(huán)體>中可以包含ExitFor語(yǔ)句,用于退出循環(huán)。⑤Next后面的<循環(huán)變量>與For語(yǔ)句中的<循環(huán)變量>必須相同。(2)For循環(huán)的執(zhí)行過(guò)程如下。①系統(tǒng)將初值賦給循環(huán)變量,并自動(dòng)記下終值和步長(zhǎng)。②判斷循環(huán)變量是否超過(guò)終值。未超過(guò)終值,則執(zhí)行一次循環(huán)體;否則,轉(zhuǎn)到⑤。③執(zhí)行Next語(yǔ)句,將循環(huán)變量加上一個(gè)步長(zhǎng)。④轉(zhuǎn)到②,繼續(xù)執(zhí)行。⑤結(jié)束循環(huán),執(zhí)行Next后面的語(yǔ)句。

【例3-11】求n!(即n!=1×2×3×…×N)PrivateSubForm1_Click(senderAsObject,eAsEventArgs)HandlesMe.ClickDimI%,f&,n%n=InputBox("輸入一個(gè)自然數(shù):","輸入提示","10")f=1ForI=1Tonf=f*INextILabel1.Text=n&"!="&fEndSub2.While循環(huán)對(duì)于只知道控制條件,但不能預(yù)先確定需要執(zhí)行多少次循環(huán)體的情況,可以使用While循環(huán)。格式:While<條件表達(dá)式>[<循環(huán)體>]Wend當(dāng)條件成立(為真)時(shí),執(zhí)行循環(huán)體;當(dāng)條件不成立(為假)時(shí),終止循環(huán)。While循環(huán)結(jié)構(gòu)的循環(huán)體中應(yīng)含有對(duì)“條件”的修改操作,使循環(huán)體能正常結(jié)束。否則,若條件永遠(yuǎn)成立,則循環(huán)體將被無(wú)限地執(zhí)行下去,不能結(jié)束,就形成了“死循環(huán)”。若初始條件不成立,則循環(huán)體一次也不執(zhí)行。【例3-12】編寫(xiě)程序,找到一個(gè)正整數(shù)N,要求N的階乘最接近1000但又不大于1000。PrivateSubForm1_Click(senderAsObject,eAsEventArgs)HandlesMe.ClickDimn%,f%n=0f=1Whilef<1000n=n+1f=f*nEndWhilen=n-1

'求此數(shù)的前一個(gè)數(shù)Label1.Text="N="&n'顯示要找的正整數(shù)NEndSub3.Do循環(huán)Do循環(huán)有兩種語(yǔ)句格式。(1)語(yǔ)法格式1:Do{While|Until}<條件表達(dá)式>[<循環(huán)體>]Loop①DoWhile-Loop語(yǔ)句的功能是當(dāng)條件成立時(shí),執(zhí)行循環(huán)體;當(dāng)條件不成立時(shí),終止循環(huán)。②DoUntil-Loop句的功能是當(dāng)條件不成立時(shí),執(zhí)行循環(huán)體,直到條件成立時(shí),終止循環(huán)。(2)語(yǔ)法格式2:

Do[<循環(huán)體>]Loop{While|Until}<條件表達(dá)式>格式2與格式1的區(qū)別是:先執(zhí)行循環(huán)體,然后判斷條件。(3)循環(huán)體中可包含ExitDo語(yǔ)句,用來(lái)強(qiáng)行退出循環(huán)體?!纠?-14】給出兩個(gè)正整數(shù)M和N,求他們的最大公約數(shù)和最小公倍數(shù)。PrivateSubForm1_Click(senderAsObject,eAsEventArgs)HandlesMe.ClickDimAAsInteger,BAsInteger,NAsInteger,MAsInteger,RAsInteger,TAsIntegerM=InputBox("請(qǐng)輸入第一個(gè)正整數(shù)M","")N=InputBox("請(qǐng)輸入第二個(gè)正整數(shù)N","")A=M:B=NIfM<NThen'使M中存放較大的數(shù),N中存放較小的數(shù)T=M:M=N:N=TEndIfR=MModNDoWhileR<>0M=N:N=R:R=MModNLoopLabel1.Text="最大公約數(shù)為:"&NLabel2.Text="最小公倍數(shù)為:"&A*B/NEndSub4.循環(huán)的嵌套在

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論