




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章
VisualBasic.NET語言編程基礎2.1VisualBasic.NET程序設計語言的代碼書寫規則
2.1.1關鍵字關鍵字又稱系統保留字,是VisualBasic.NET系統中已規定和定義好了的具有固定含義和使用方法的字母組合。用于表示系統中的標準過程、方法、屬性、函數和運算符等。如Private、Sub、If、Else等。在程序代碼中,關鍵字必須按要求書寫準確,并且不能再做他用。
2.1.2VisualBasic.NET下語句的書寫格式一個語句行以回車鍵結束,其長度最多不能超過1023個字符
。語句中的命令字母不分大小寫。
一行上可以書寫一至多條語句,當在一行上書寫多條語句時,語句間要用半角英文冒號“:”隔開,如:t=a:a=b:b=t表示本行中書寫了三條語句。一條語句也可以斷成若干行來寫,但這時要在每行的斷開處末尾加上空格及下劃線“_”作為續行標志,表示下一行與本行是同一條語句。如:
c=2*3.14_ *r
為方便閱讀程序,建議一行上只寫一條語句。
c=2*3.14*r
2.2VisualBasic.NET下的幾種簡單語句1.注釋語句為了提高程序的可讀性,常在程序的適當位置上對程序代碼進行必要的說明,這就是注釋。格式1:Rem
注釋內容格式2:'注釋內容
注意:(1)注釋語句是非執行語句,在程序中添加注釋不影響程序的執行結果,只是為了提高程序的閱讀性。(2)格式2中的單引號必須是英文單引號,不能是中文單引號。(3)注釋語句中的注釋內容可以是各種字符。如:中文、英文等。(4)注釋語句可以單獨占一行,也可以放在某一可執行語句的后面。(5)注釋語句不能放在續行符的后面。2.賦值語句
格式:<變量名>=<表達式>
(1)“變量名”可以是簡單變量也可以是下標變量(數組元素)、對象的屬性名;“表達式”(即運算式子)可以是任何類型的表達式,如:常數、已有值的變量、對象的屬性、各種運算符連結形成的有意義的式子等。(2)該語句的功能是:將賦值號“=”右邊的“表達式”的值賦給左邊的“變量”,使該“變量”具有一個值。例如:
Sum=0TextBox1.Text=A&B注:(1)區分賦值號“=”和數學上的等號的不同,它表示賦值功能。(2)賦值語句兼有計算和賦值的雙重功能,它首先計算右邊“表達式”的值,然后再將該值賦給左邊的變量。如:I=I+1等。(3)當對一個變量賦了多次值時,變量只保留最后一次被賦的值。3.結束程序執行的語句
語法格式:End
功能:當程序中執行了End語句時,程序的運行就宣告結束。
End語句除用來結束程序外,在不同的環境下還有其他的用途,如:
EndSub
'結束一個Sub過程
EndFunction'結束一個Function過程
EndIf
'結束一個塊If語句等等。4.暫停程序執行的語句語法格式:Stop
功能:暫停程序的執行,并打開“自動窗口”,用于用戶查看程序中目前各變量的值、對象屬性值等,方便用戶查驗程序執行是否正確等,如圖所示:2.3VisualBasic.NET的數據類型
VisualBasic.NET的數據類型可分為以下六大類:
數值數據類型:它包括字節型、短整型、整型、長整型、單精度型、雙精度型和貨幣型。
字符數據類型:它包括字符型、字符串型。布爾數據類型
日期數據類型對象數據類型用戶自定義數據類型:它包括結構、類、枚舉。
由于VisualBasic.NET是一種面向對象的程序設計語言,因此,每種數據類型實質上都是類。表2.1VisualBasic.NET2005的數據類型
2.4命名空間
1.命名空間的概念命名空間(NameSpace),就是讓每一個名稱都有自己的活動空間,不會互相混淆。每個命名空間都含有與整個應用程序的某一部分相關聯的類,根據命名空間,可以清楚地知道某個類與應用程序的哪一個部分相關聯。
命名空間是分層的,.NET框架本身具備自己定義好的命名層次空間,整個框架的根命名空間是System,在不同層的命名空間里定義了大量的類和組件。
VisualBasic.NET常用的命名空間有以下幾種:System、System.Reflection、System.Io、System.Collection、System.Web、System.NET、System.Data、System.Windows.Forms等。
2.命名空間的使用引用命名空間有以下三種方法:
(1)項目引用
在出現的快捷菜單中單擊“添加引用”菜單命令右鍵單擊單擊“查看所有文件
”按鈕(2)直接引用在程序代碼中直接寫明命名空間的全名(即完全限定名),從高到低依次寫明每一級命名空間名稱,各部分之間用“.”隔開。如:System.Math.Sqrt(10),表示使用命名空間System.Math中的Sqrt函數。(3)使用Imports語句Imports[別名=]命名空間注:Imports語句必須放在模塊文件所有語句的前面,但可放在Option語句的下面。如:ImportsSystem.Math
3.自定義命名空間自定義命名空間用NameSpace語句完成,格式是:NameSpace
命名空間名…EndNameSpace處于NameSpace和EndNameSpace之間的部分就是命名空間的范圍。
可以定義模塊、類、枚舉、結構等。不能定義屬性、過程、變量或事件等項目2.5常量與變量
2.5.1常量與符號常量1.直接常量
以直接明顯的形式寫出的各種數據,常量的數據類型由用戶在程序中的書寫格式來自動區分,而不需要聲明和定義。
VisualBasic.NET的直接常量包括數值常量、字符常量、日期常量、布爾常量。(1)數值常量:包括整數常量、浮點常量和貨幣常量三類。
①整數常量:主要包括整型、無符號整型、短整型、無符號短整型、長整型、無符號長整型、字節型和無符號字節型。
程序中,用戶可以根據需要采用十進制、八進制和十六進制的形式表示和書寫整數。
十進制形式:數字只能為0~9,直接按十進制格式書寫。如:100、-999I、300%等都是正確的用十進制方式表示的整型常量,而88888&是一個用十進制表示的長整型常量、1000S是一個用十進制表示的短整型常量。八進制形式:數字只能為0~7,數字前冠以&O(字母O,而不是數字0)、&o或&。如:&O100、&O123、&475、-&O123都是正確的八進制方式表示的整型常量,而&O574&、&o50000L是用八進制方式表示的長整型常量。十六進制形式:數字可以是0~9及A~F或a~f,數字前冠以&H或&h。如:&H41、&h61、-&HFFF等都是正確的十六進制方式表示的整數常量,而&H8000000F&表示一個用十六進制方式表示的長整型常量。 ②
浮點常量
:包括單精度浮點數和雙精度浮點數。
浮點數可以用小數形式和指數形式來書寫
當用指數形式來書寫時,浮點數由尾數、指數符號和指數三部分組成
精度:7位十進制數
精度:16位十進制數
-12.45、3.14#、45.1R都是以小數形式表示的雙精度常數
2.71828!、10.45F都是以小數形式表示的單精度常數
-1.2E5!或-1.2e5F是一個單精度的浮點常數,其值等價于-1.2×105
-3.4E-6#或-3.4e-6R是一個雙精度的浮點常數,其值等價于-3.4×10-6
③貨幣型常量(即定點數):它以16個字節整數數字形式保存,使得整數也可處理的實數達29位(含小數點),是精確小數的表示形式,數值末尾可加類型說明符“@”或“D”。(2)字符和字符串常量字符常量是由半角英文雙引號括起來的一個字符.字符串常量是由半角英文雙引號括起來的一串字符。①字符串長度:字符串中所包含的字符的個數,字符串兩端的定界符雙引號不計在內。②如果串中字符有雙引號時,必須用兩個連續的雙引號來表示一個雙引號。③空字符串與空格字符串:空字符串是用一對連續的雙引號表示,即"",其長度為0;而空格字符串是定界符雙引號內有一個至多個空格符,其長度大于0,如:""。④字符串中的字符是區分大小寫的,在計算機中是靠字符的ASCII碼來識別的。(3)邏輯常量只有真和假兩個值,在VisualBasic.NET中,真值用True表示,假值用False表示。(4)日期常量
日期常量在程序中書寫時要用兩個“#”符號把表示日期和時間的值括起來,日期的格式可以是:mm/dd/yyyy或mm-dd-yyyy,也可以是yyyy/mm/dd或yyyy-mm-dd,還可以是其它在形式上可看作日期的文本。
【例2.1】下列不屬于VisualBasic.NET的合法常量的是()。A)1234&
B)98.0!
C)34@
D)11.12%【例2.2】下列屬于VisualBasic的合法常量的是()。A)10E-2
B)E-2
C)10e
D)10*E-22.符號常量
在VisualBasic.NET中,符號常量分為內部(系統定義)常量和用戶自定義符號常量。
(1)內部常量
VisualBasic.NET系統內部,定義了一些有意義的、便于記憶的名稱符號用以代表一些常數值或字符串,這些名稱符號稱為內部常量。內部常量常用“vb”作為前綴,它們被定義在Microsoft.VisualBasic命名空間下。如:
vbCrLf表示回車/換行字符組合。
vbCr表示回車符。
(2)用戶自定義符號常量[Public|Private]Const常量名[As數據類型]=表達式[,常量名[As數據類型]=表達式]……
注意:①在定義符號常量時,如果未指明數據類型時,則ViusalBasic.NET根據定義中表達式的求值結果確定常量的數據類型。②可以在符號常量名后加“類型符”來表示符號常量的類型。③如果在一行中同時定義多個符號常數時,則它們之間要用逗號進行分隔。④可以利用已經定義過的符號常量,再去定義另外一個新的符號常量,但要避免循環定義符號常量。⑤符號常量名中的字母不分大小寫。⑥同一個符號常量不能多次重復定義。⑦只能在模塊或過程級別使用Const。2.5.2變量及其命名規則1.變量的概念
在程序的執行過程中,其值在不斷發生變化的數據稱為變量。
2.變量的命名規則(1)變量名只能由字母(A~Z或a~z)、數字(0~9)、下劃線“_”或漢字組合形成,總字符個數不得超過1023個字符,且必須以字母(或漢字)開頭,所有字母不區分大小寫,但一般習慣單詞的第一個字母大寫。(2)不能用VisualBasic.NET的關鍵字或在關鍵字后面加類型說明符作為變量名。(3)在同一個范圍內,變量名必須是惟一的。(4)建議變量的命名要便于記憶、有意義和簡明。Myname、sum、x1 integer、abc.123、1abxy合法不合法2.5.3變量的聲明與初始化 變量的聲明包括顯示式聲明和隱式聲明兩種。
1.顯式聲明
聲明關鍵字<變量名1>[As<類型1>][=初始值1][,<變量名2>[As<類型2>][=初始值2]]……【例2.4】設有語句Dimx,yAsSingle,z%,則變量x、y和z的數據類型分別為
、
、
。
2.隱式聲明
隱式聲明是在使用變量之前不需要事先聲明該變量,而是在變量名之后緊跟一個代表數據類型的類型符,來說明該的數據類型。方法1:在代碼的開頭處寫上OptionExplicit語句,該語句的語法格式是:OptionExplicit[On|Off]方法2:顯式聲明3.關于被聲明變量的初始默認值(1)數值類型變量(即:Double,Single,Decimal,Integer,Long,Byte等類型)被聲明后的初始默認值為0。(2)Boolean類型的變量被聲明后的初始默認值為False。(3)Date類型的變量被聲明后的初始默認值為0:00:00。(4)字符串類型的變量被聲明后的初始默認值為空串即“”。4.關于對象類型(object)的變量
此類變量可存放數值、字符串甚至是對象,使用起來很有彈性,但要占用更多內存且運算速度變慢,聲明時應根據慎重使用。
2.5.4結構數據類型1.結構數據類型及其定義VisualBasic.NET中定義結構類型的語法格式是:[Public|Private]Structure結構類型名
Dim|Private|Public成員名1As數據類型
Dim|Private|Public成員名2As數據類型……EndStructure如:定義一個名稱為StudentRecord的結構類型,來表示學生基本信息,則定義語句為:PublicStructureStudentRecord
DimSidAsString'學號
DimSnameAsString'姓名
DimSclassAsString'班級
DimSageAsInteger'年齡EndStructure2.聲明結構類型的變量當程序中已定義了結構數據類型后,就可以在程序中定義某個變量屬于這種類型,格式與定義基本數據類型的變量格式完全一樣。DimstuAsStudentRecordPrivateStu1AsStudentRecord3.結構類型變量成員的引用(1)當已經定義了某個結構類型的變量時,該變量就具有了該種結構類型的全部成員,要使用其中的某個成員時,格式是:
結構類型變量名.成員名
(2)結構類型變量中的每一個成員就是一個變量。(3)當逐一表示結構類型變量中的成員時,可以用With…EndWith語句來進行簡化,語句格式是:With結構類型變量名語句塊EndWith【例2.5】編寫一Windows應用程序,其中定義一表示學生信息的結構類型StudentRecord,包括:Sid、Sname、Sclass、Sage共四個成員,并定義該結構類型的變量stu,接著對其成員進行賦值,最后輸出該變量各成員的值。【例2.6】進入VisualStudio.NET2005集成開發環境,新建一個VisualBasic類型的Windows應用程序項目,項目名稱為“Exp2-6”,解決方案名稱為“Exp2-6”,存放位置為“E:\Program”。進入代碼編輯窗口,在窗體類內部的聲明區定義屬于本類范圍(Private)可以使用的結構數據類型MyNewType,并同時編寫窗體Form1的事件過程Form1_Click,代碼編寫窗口如圖2.7所示,所有程序代碼如下:
OptionExplicitOn
PublicClassForm1 PrivateStructureMyNewType
DimNoAsInteger DimNameAsString EndStructure
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.Click DimsAsMyNewType
EndSub
EndClass如果要對Form1_Click事件過程中的變量s賦值,則以下()是對變量s的正確的賦值語句。
A)s.Name="Zhang":s.No=89
B)s="Zhang":s=89 C)Name="Zhang":No=89
D)s="Zhang",89
2.5.5枚舉數據類型1.枚舉數據類型的定義
當一個變量只有幾種固定的取值時,可以定義枚舉類型,將該變量的取值一一列舉出來,從而該變量的取值只限于列舉出來的值的范圍
枚舉類型的定義格式:[Public|Private]Enum
枚舉名稱[As數據類型]
成員名1[=常數表達式]
成員名2[=常數表達式]……EndEnum注意:(1)定義枚舉類型時,可在Enum關鍵字前面加上Public、Private等,表示枚舉類型可以使用的范圍。如果省略,則默認為Public(2)“數據類型”可以是Byte、Integer、Long、SByte、Short、UInteger、ULong
或UShort等,如果沒有指定“As數據類型”,則默認為Integer類型。(3)“枚舉名稱”由用戶給出,其命名規則同變量的命名規則,“成員名”是枚舉數據類型中所包含的各個成員,這些成員是常數,即枚舉類型的各個取值。(4)“常數表達式”是可選的,如果省略,在默認情況下,枚舉中的第一個成員(常數)被初始化為0,其后的成員初始化為比其前面的成員大1的數值。(5)可以用賦值語句顯式地給枚舉中的成員賦值,所賦的值可以是任何整型的數。(6)引用枚舉類型中的成員的格式是:枚舉名稱.成員名
2.定義枚舉類型的變量當程序中定義了枚舉數據類型后,就可以利用像定義一個基本數據類型的變量那樣定義一個枚舉類型的變量。格式與前面所介紹的定義基本類型的變量的格式完全一樣。
當對變量w賦值時(即當輸入“w=”時),系統將自動提示可以給變量w賦值的值列表(即列出枚舉類型中的所有成員)
2.6VisualBasic.NET的運算符和表達式
2.6.1算術運算符與算術表達式1.VisualBasic的算術運算符
運算符名稱表達式及運算結果舉例+加a+b,值為14-減a-b,值為6*乘a*b,值為40/除a/b,值為2.5^乘方a^b,值為10000\整除a\b,值為2Mod求余(取模)aModb,值為2-取負-a,值為-102.算術表達式
在書寫表達式時應注意與數學上的表達式寫法上的區別:(1)表達式中所有符號都必須一個一個并排寫在同一橫線上,不能寫成上標或下標的形式。(2)表達式中的乘號不能省略。(3)表達式中所有的括號一律使用圓括號,并且括號左右必須配對。(4)數學表達式中的表示特定含義的符號要寫成具體的數值。3.算術運算符的優先級在所有的8個算術運算符中,指數運算符(^)優先級最高,其次依次是取負(-)、乘(*)和浮點除(/)、整除(\)、取模(Mod)、加(+)和減(-)。其中乘和除是同級運算,加和減是同級運算。當遇到同一級運行時,按從左向右的次序進行。如果表達式中含有括號,則先計算括號內表達式的值;有多層括號時,先計算內層括號的值,再求外層括號內表達式的值。
【例2.7】進入VisualStudio.NET2005集成開發環境,新建一個VisualBasic類型的Windows應用程序項目,項目名稱為“Exp2-7”,解決方案名稱為“Exp2-7”,存放位置為“E:\Program”。在窗體上添加一命令按鈕Button1。進入代碼編輯窗口,在窗體模塊的最頂端的聲明區定義在整個程序中都可用的(即定義為Public)枚舉類型MyNum,并同時編寫按鈕Button1的事件過程Button1_Click,所有程序代碼如下:
OptionExplicitOnPublicEnum
MyNum
onetwo=3threefour=6fiveEndEnumPublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimN1,N2,N3AsMyNum
DimN4AsIntegerN1=MyNum.oneN2=MyNum.threeN3=MyNum.fiveN4=N1+N3ModMyNum.five\(N2-1)Debug.Print(N4)
EndSubEndClass
當程序運行時,用戶單擊命令按鈕Button1后,則在輸出窗口中輸出的結果為()。
A)0
B)1
C)2
D)3
2.6.2字符串連接運算符與字符串表達式
1.字符串連接運算符
(1)&(2)+一般情況下,二者在使用上沒有區別,但“&”會自動將非字符串類型的數據轉換成字符串后再進行連接運算,而“+”則不能自動轉換。如:"abc"+"123"'結果是abc123"abc"+123'結果出錯"abc"&123'結果為abc123在對兩個字符串作連接運算時,用“&”比“+”更可靠和安全。2.字符串表達式一個字符串表達式是由字符串常量、字符串變量、字符串函數、字符串運算符和括號等連接形成的一個有意義的運算式子。如:“xyz”&“123”就是一個字符串表達式。3.字符串連接運算符的優先級
在VisualBasic.NET中,字符串連接運算符的優先級是低于所有的算術運算符,而高于其他的運算符。
2.6.3關系運算符與關系表達式1.關系運算符
運算符含義關系表達式的例子=等于a=b<>不等于a<>(b+c)>大于"a">"b"<小于a^2<b-c*3>=大于或等于a>=b/2<=小于或等于a<=bMod2Like依樣式比較字符串字符串Like樣式Is比較對象對象AIs對象BIsNot比較對象,與Is功能相反對象AIsNot
對象BTypeOf…Is測試對象數據類型注:(1)Like運算符樣式包括:①?,表示該位置字符允許使用任何單一字符。②#,表示該位置字符只允許使用數字字符。③*,表示該位置字符的字符數不限(任意多個)或0個。④[charlist],允許使用charlist內任何單一字符。⑤[!charlist],不允許使用charlist內任何單一字符。(2)Is運算符是一種對象引用比較運算符,它不會比較對象或對象值,只是進行檢查,判斷兩個對象引用是否代表同一對象。而IsNot運算符的功能與Is相反,它用來判斷兩個對象引用是否代表不同對象。2.關系表達式及其求值關系表達式是用關系運算符、算術表達式、字符串表達式和括號等連接形成的一個有意義的運算式子。關系運算符兩側參加運算的數據類型必須完全一致。說明:(1)一個關系表達式的運算結果是一個Boolean類型的值。(2)在對兩個數值表達式進行關系運算時,是比較兩個數值的大小。(3)日期型數據進行比較時,較早的日期小于較晚的日期。(4)對于字符型數據的比較,取決于OptionCompare語句的狀態,該語句的格式是:OptionCompareBinary|Text
(5)如果直接比較單個字符,則比較兩個字符的ASCII碼的大小
如果比較兩個字符串,則從關系運算符的左邊字符串的第一個字符開始,逐一和右邊字符串的對應位置上的字符進行比較(即比較對應位置上的字符的ASCII碼),其中ASCII值較大的字符所在的字符串大。
"abc">"abyz"
"XYZ"<"X123""abc"<"abcd“(6)當對單精度或雙精度數使用比較運算符時,應避免對兩個浮點數直接作“相等”或“不相等”的判別和比較,否則可能會得出錯誤的結果。
FalseFalseFalse3.關系運算符的優先級
所有的關系運算符的優先級都相同,屬于同一級運算,在運算時按從左向右的次序進行運算。關系運算符的運算優先級低于所有算術運算符和字符串連接運算符,而高于其他的運算符。【例2.8】Like運算符應用舉例,計算以下各關系表達式的值:"A"Like"A"的值為True。"a"Like"A"的值為False。"A"Like"AAA"的值為False。"Windows"Like"W*s"的值為True。"W"Like"[A-Z]"的值為True。"W"Like"[!A-Z]"的值為False。"y2k"Like"y#k"的值為True。"aM5b"Like"a[L-P]#[!c-e]"的值為True。"Wish168"Like"W?s*"的值為True。
2.6.4邏輯運算符和邏輯表達式1.邏輯運算符運算符名稱功能說明Not邏輯非單目運算符,對單個表達式的邏輯值取反,即由真變假或由假變真And邏輯與兩個表達式都為True時,整個表達式的值為True,否則為FalseOr邏輯或兩個表達式有一個為True時,整個表達式的值為True,否則為False運算符
名稱
功能說明
Xor異或兩個表達式的值不同時,整個表達式為True,否則為FalseAndAlso邏輯與兩個表達式都為True時,整個表達式的值為True,否則為False。但當第一個表達式的值為False時,則不再計算第二個表達式的值OrElse邏輯或兩個表達式有一個為True時,整個表達式的值為True,否則為False。但當第一個表達式的值為True時,不再計算第二個表達式的值2.邏輯表達式及其求值
邏輯表達式是由其他各種表達式、邏輯運算符、布爾常量、布爾變量、函數和括號等連接形成的運算式子。其一般格式為:<表達式1><邏輯運算符><表達式2>
說明:
(1)如果參加邏輯運算的數據為布爾值時,邏輯運算的值為布爾值,即為True或False。xyNotxxAndyxOryxXoryxAndAlsoyxOrElseyTrueTrueFalseTrueTrueFalseTrueTrueTrueFalseFalseFalseTrueTrueFalseTrueFalseTrueTrueFalseTrueTrueFalseTrueFalseFalseTrueFalseFalseFalseFalseFalse表2.5邏輯運算符的運算結果表
xyxAndAlsoyTrueTrueTrueTrueFalseFalseFalse不處理,以節省時間False表2.6邏輯運算符AndAlso的運算結果表
xyxOrElseyTrue不處理,以節省時間TrueFalseTrueTrueFalseFalseFalse表2.7邏輯運算符OrElse的運算結果表
(2)如果參加邏輯運算的操作數是數值表達式時,此時進行的是按位運算,即把參加運算的數據轉換成16位(整數)或32位(長整數)二進制數,然后分別對兩個二進制數的二進制位進行運算,運算的結果是一個整型數值。用法功能舉例Nota將數值a轉換成二制數,然后將每個二進制位按位取反,即1變0,0變1Not2=Not0000000000000010結果為:1111111111111101=-3aAndb將數值a和b分別轉換成二進制數,對應的二進制位進行按位與運算,即對應的二進制位上都為1時,則該二進制位的結果為1,否則為02And3=0000000000000010And0000000000000011結果:0000000000000010轉換為十進制數為2
邏輯運算符進行按位運算的功能及運算結果表
2And3=0000000000000010And00000000000000112Or3=0000000000000010Or00000000000000112Xor3=0000000000000010
Xor0000000000000011用法功能舉例aOrb將數值a和b分別轉換成二進制數,對應的二進制位進行按位或運算,即只要對應的二進制位上有一個為1時,則該二進制位的結果為1,否則為0結果:0000000000000011轉換為十進制數為3aXorb將數值a和b分別轉換成二進制數,對應的二進制位進行按位異或運算,即對應的二進制位上的數字不相同時,則該二進制位的結果為1,否則為0結果:0000000000000001轉換為十進制數為13.邏輯運算符的優先級邏輯運算符的優先級由高到低依次為:Not、And和AndAlso、Or和OrElse
2.6.5賦值運算符與復合賦值運算符運算符功能示例=賦值i=5,將變量i賦成值5+=相加后再賦值i+=5,等價于i=i+5-=相減后再賦值i-=5,等價于i=i-5*=相乘后再賦值i*=5,等價于i=i*5/=相除后再賦值i/=5,等價于i=i/5\=整除后再賦值i\=5,等價于i=i\5^=乘方后再賦值i^=5,等價于i=i^5&=字符串連接后再賦值s&="abc",等價于s=s&"abc"2.6.6各種運算符的優先級比較所有運算符中,同一級運算一律按運算次序(從左向右或從右向左)進行運算,括號內的運算優先進行,處在最內層括號里的運算首先進行,然后從內層向外層進行運算。優先級運算符運算次序1()從內向外2^從內向外3-(取負)從內向外4*/從左向右5\從左向右6Mod從左向右7+-從左向右運算符的優先級優先級運算符運算次序8&(字符串連接)從左向右9=><<>>=<=LikeIsTypeof…Is從左向右10Not從左向右11AndAndAlso從左向右12OrOrElse從左向右13Xor從右向左14=+=-=*=/=\=^=&=從右向左利用“命令窗口”來測試某個表達式的值
2.7VisualBasic.NET的內部函數
由系統本身提供的、用戶可直接使用的函數可統稱為內部函數(或庫函數、標準函數)。(1)VisualBasic.NET函數庫的名稱空間和模塊
①Conversion類②VbMath類③DateAndTime類④Strings類(2).NET基礎類庫中的名稱空間和類VisualBasic.NET中常用的內部函數,大多數已分別遷移到相應的命名空間內,使用時需要引入相應的命名空間,或直接在函數名前面寫清楚相應的命名空間和所屬的類(即函數的完全限定名),即: 命名空間名.函數名([參數表])轉換函數隨機函數日期、時間函數
字符串處理函數
2.7.1數學函數存在于System.Math命名空間調用的形式是:System.Math.函數名(參數表)
在模塊的開頭處加入Imports語句:ImportsSystem.Math
函數名功能說明Abs(x)求絕對值Sign(x)求數字符號,當x>0時,返回值為1;當x<0時,返回值-1;當x=0時,返回值0Sqrt(x)求平方根Exp(x)指數函數,求exPow(x,y)求xyLog(x)求自然對數Log10(x)求以10為底的常用對數Sin(x)正弦函數,x為弧度Cos(x)余弦函數,x為弧度Math類的常用數學函數
函數名功能說明Tan(x)正切函數,x為弧度Asin(x)反正弦Acos(x)反余弦Atn(x)反正切函數Max(x,y)返回x和y中的較大者Min(x,y)返回x和y中的較小者Round(x)將x的小數部分第一位進行四舍五入后,取整Floor(x)取整,返回小于或等于指定數字x的最大整數Ceiling(x)取整,返回大于或等于指定數字x的最小整數
【例2.10】與數學表達式ln(ex+|arctg(x)|)+cos2x對應的VisualBasic.NET的表達式是()(假設已經用ImportsSystem.Math語句引用了命名空間)。
A)ln{E^x+Abs[Tan(x)]}+Cosx^2 B)Log(Exp(x)+Abs(Atn(x)))+Cos(x)^2 C)Ln(Exp(x)+Abs(Tan(x)))+Cos(x)^2 D)Log(e^x+Abs(Atn(x)))+Cosx^22.7.2隨機數函數存在于Microsoft.VisualBasic命名空間下的VBMath類中
1.Rnd函數
函數格式:Rnd[(x)]
函數功能:可產生一個0~1之間的單精度隨機數(該值是大于或等于0,但小于1的數),下一個要產生的隨機數受自變量x的影響,分別為:(1)當x<0時,則每次產生的隨機數都相同。(2)當x>0或省略時,產生下一個隨機數。(3)當x=0時,則該次產生的隨機數與上一次產生的隨機數相同。System.Math.Floor(Microsoft.VisualBasic.VBMath.Rnd()*100+1)
雙精度數產生1~100之間的隨機整數
2.Randomize函數
語句格式:Randomize[(x)]語句功能:在上面語句中,自變量x為一雙精度數,它是隨機數發生器的“種子數”,可以省略,如果省略,則VisualBasic.NET取系統內部的計時器的返回值用作新的種子值。由于內部時鐘在不停地變化,所以,每次執行時隨機數種子數也不相同,從而可以產生不同的隨機數序列。如果給出隨機數的種子數(即x不省略),則產生與x對應的一個特定序列的隨機數。
2.7.3轉換函數Microsoft.VisualBasic命名空間下的Conversion類的常用轉換函數
函數名功能說明舉例Fix(x)對數值x取整,截去小數部分Fix(5.7)結果為5,Fix(-10.9)結果為-10Int(x)求不大于x的最大整數Int(5.7)結果為5,Int(-10.9)結果為-11Hex(x)將十制數x轉換為對應的十六進制值的字符串Hex(100)結果為字符串"64"Oct(x)將十進制數x轉換為對應的八進制值字符串Oct(10)結果為字符串"12"Str(x)將數值x轉換為對應的字符串Str(100)結果為字符串"︼100"(︼表示空格符,下同)Val(x)將字符串x轉換為對應的數值Val("-5.14")結果為數值-5.14說明:(1)Val函數Val函數的功能是將字符串轉換為數值如果被轉換的字符串是一個非數字字符串,則該函數的函數值為0如果在字符串轉換過程中遇到非數字字符(除指數符號、小數點和正負號外),則轉換停止,非數字字符不轉換。(2)Str函數Str函數的功能是將數值轉換為字符串如果被轉換的數值是正數時,則轉換后對應的字符串包含一個前導空格,暗示為加號如果為負數,則返回的字符串包含減號(-),沒有前導空格。2.7.4日期和時間函數Microsoft.VisualBasic命名空間下的DateAndTime類的常用日期時間函數
函數名功能說明舉例Now或Now()返回系統當前的日期和時間,該值為Date型Now()結果為:#3/26/20082:23:13PM#Today或Today()返回系統當前的日期,該值為Date型Today()結果為:#3/26/2008#Day(D)返回日期D中的日子,結果為Integer型Day(Now())結果為26Month(D)返回日期中的月份(1~12),結果為Integer型Month(Now())結果為3Year(D)返回日期中的年份,結果為Integer型Year(Now())結果為2008Hour(D)求時間中的小時數(0~23),結果為Integer型Hour(Now())結果為14函數名功能說明舉例Minute(D)求時間中的分鐘數(0~59),結果為Integer型Minute(Now())結果為23Second(D)求時間中的秒數(0~59),結果為Integer型Second(Now())結果為13Timer或Timer()求從午夜起到現在已經歷過的秒數,結果為Double型Timer()結果為52284.4375TimeOfDay()返回系統當前的時間,結果為Date類型TimeOfDay()結果為17:15:21WeekDay(D)求指定日期是星期幾,結果為Integer型,1代表星期日,2代表星期一,……WeekDay(Now())結果為4WeekDayName(n)返回星期幾,n為1時返回“星期日”,為2時返回“星期一”,……WeekDayName(1)結果為“星期一”2.7.5字符串處理函數函數名功能說明Trim(字符串表達式)刪除字符串兩端空格字符LTrim(字符串表達式)刪除字符串左端空格字符RTrim(字符串表達式)刪除字符串右端空格字符Left(字符串表達式,n)從原字符串的左端截取n個字符,結果為截取的子串Right(字符串表達式,n)從原字符串的右端截取n個字符,結果為截取的子串Mid(字符串表達式,n,m)從字符串表達式所表示的字符串的第n個字符開始(包括第n個字符)端截取m個字符,結果為截取的子串。Len(字符串表達式)求字符串的長度,或求某個變量所占的存儲空間(字節數)Space(n)產生由n個空格字符組成的字符串Microsoft.VisualBasic命名空間下Strings類的字符串處理函數
函數名
功能說明
InStr([首字符位置,]字符串1,字符串2[,n])在“字符串1”中查找“字符串2”,若找到,則返回其在“字符串1”中第一次出現時的的位置(即第幾個字符)UCase(字符串表達式)將字符串中的所有字母字符均轉換成大寫,非字母字符不變LCase(字符串表達式)將字符串中的所有字母字符均轉換成小寫,非字母字符不變Asc(字符串表達式)求字符串表達式中的第一個字符的ASCII碼值Chr(表達式)求以表達式的值為ASCII碼的字符函數名
功能說明
StrComp(字符串1,字符串2[,比較方式])求字符串1和字符串2比較的結果。若字符串1>字符串2,則結果為1;若兩串相等,則結果為0;若字符串1<字符串2,則結果為-1。“比較方式”可以取0或1,取0時表示比較時要區分大小寫,取1時表示比較時不區分大小寫StrReverse(字符串)將字符串中的字符順序顛倒,并返回逆序后的字符串Replace(字符串1,字符串2,字符串3)將字符串1中出現的與字符串2中字符完全相同的部分用字符串3替換Strings類的字符串處理函數
說明:(1)關于Len函數該函數的功能即可求字符串的長度,也可求某個變量所占的存儲空間(字節數)。
(2)關于Instr函數
①Instr函數的格式是:
InStr([首字符位置,]字符串1,字符串2[,n])
條件Instr的函數值字符串1為零長度字符串或Nothing(Nothing關鍵字表示任意數據類型的默認值)0字符串2為零長度字符串或Nothing首字符位置在字符串1中未找到字符串20在字符串1找到字符串2找到的位置首字符位置>字符串2的長度0Instr函數的函數值
②參數“首字符位置”是可選的,如果有“首字符位置”,則從該位置開始查找,否則從“字符串1”的第1個字符開始查找,“首字符位置”是一個整型數。③函數的最后一個自變量n是可選的,它是一個整型數,用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高中語文知識水平測試試卷及答案
- 農村集體經濟資源利用開發合同書
- 《走進古代文學的世界:現代散文教學案例》
- 從電影少年的你看成長話題作文(13篇)
- 個人年度收入明細個人工資證明(7篇)
- 2025春節的作文500字(7篇)
- 委托協議即為質量協議
- 寫景作文嶗山400字14篇范文
- 美麗的童話世界講述一個童話故事12篇
- 少年中國說節選的語言魅力與勵志精神:初中語文古詩文誦讀教學教案
- 英文經典電影賞析智慧樹知到期末考試答案2024年
- (正式版)JBT 106-2024 閥門的標志和涂裝
- 從安全意識到安全行為習慣的養成
- 七下第三單元《駱駝祥子》整本書閱讀 公開課一等獎創新教學設計
- 醫療器械銷售授權證書審批指南
- 陪診公司推廣方案
- 彌勒旅游策劃方案
- 老年人中醫養生知識健康講座內容
- 隱孢子蟲病健康宣教
- 車站調車作業-駝峰調車作業
- 瀝青路面損壞調查表(帶公式自動計算)
評論
0/150
提交評論