第2章 Visual Basic.NET語言編程基礎(chǔ)_第1頁
第2章 Visual Basic.NET語言編程基礎(chǔ)_第2頁
第2章 Visual Basic.NET語言編程基礎(chǔ)_第3頁
第2章 Visual Basic.NET語言編程基礎(chǔ)_第4頁
第2章 Visual Basic.NET語言編程基礎(chǔ)_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章

VisualBasic.NET語言編程基礎(chǔ)2.1VisualBasic.NET程序設(shè)計語言的代碼書寫規(guī)則

2.1.1關(guān)鍵字關(guān)鍵字又稱系統(tǒng)保留字,是VisualBasic.NET系統(tǒng)中已規(guī)定和定義好了的具有固定含義和使用方法的字母組合。用于表示系統(tǒng)中的標準過程、方法、屬性、函數(shù)和運算符等。如Private、Sub、If、Else等。在程序代碼中,關(guān)鍵字必須按要求書寫準確,并且不能再做他用。

2.1.2VisualBasic.NET下語句的書寫格式一個語句行以回車鍵結(jié)束,其長度最多不能超過1023個字符

。語句中的命令字母不分大小寫。

一行上可以書寫一至多條語句,當(dāng)在一行上書寫多條語句時,語句間要用半角英文冒號“:”隔開,如:t=a:a=b:b=t表示本行中書寫了三條語句。一條語句也可以斷成若干行來寫,但這時要在每行的斷開處末尾加上空格及下劃線“_”作為續(xù)行標志,表示下一行與本行是同一條語句。如:

c=2*3.14_ *r

為方便閱讀程序,建議一行上只寫一條語句。

c=2*3.14*r

2.2VisualBasic.NET下的幾種簡單語句1.注釋語句為了提高程序的可讀性,常在程序的適當(dāng)位置上對程序代碼進行必要的說明,這就是注釋。格式1:Rem

注釋內(nèi)容格式2:'注釋內(nèi)容

注意:(1)注釋語句是非執(zhí)行語句,在程序中添加注釋不影響程序的執(zhí)行結(jié)果,只是為了提高程序的閱讀性。(2)格式2中的單引號必須是英文單引號,不能是中文單引號。(3)注釋語句中的注釋內(nèi)容可以是各種字符。如:中文、英文等。(4)注釋語句可以單獨占一行,也可以放在某一可執(zhí)行語句的后面。(5)注釋語句不能放在續(xù)行符的后面。2.賦值語句

格式:<變量名>=<表達式>

(1)“變量名”可以是簡單變量也可以是下標變量(數(shù)組元素)、對象的屬性名;“表達式”(即運算式子)可以是任何類型的表達式,如:常數(shù)、已有值的變量、對象的屬性、各種運算符連結(jié)形成的有意義的式子等。(2)該語句的功能是:將賦值號“=”右邊的“表達式”的值賦給左邊的“變量”,使該“變量”具有一個值。例如:

Sum=0TextBox1.Text=A&B注:(1)區(qū)分賦值號“=”和數(shù)學(xué)上的等號的不同,它表示賦值功能。(2)賦值語句兼有計算和賦值的雙重功能,它首先計算右邊“表達式”的值,然后再將該值賦給左邊的變量。如:I=I+1等。(3)當(dāng)對一個變量賦了多次值時,變量只保留最后一次被賦的值。3.結(jié)束程序執(zhí)行的語句

語法格式:End

功能:當(dāng)程序中執(zhí)行了End語句時,程序的運行就宣告結(jié)束。

End語句除用來結(jié)束程序外,在不同的環(huán)境下還有其他的用途,如:

EndSub

'結(jié)束一個Sub過程

EndFunction'結(jié)束一個Function過程

EndIf

'結(jié)束一個塊If語句等等。4.暫停程序執(zhí)行的語句語法格式:Stop

功能:暫停程序的執(zhí)行,并打開“自動窗口”,用于用戶查看程序中目前各變量的值、對象屬性值等,方便用戶查驗程序執(zhí)行是否正確等,如圖所示:2.3VisualBasic.NET的數(shù)據(jù)類型

VisualBasic.NET的數(shù)據(jù)類型可分為以下六大類:

數(shù)值數(shù)據(jù)類型:它包括字節(jié)型、短整型、整型、長整型、單精度型、雙精度型和貨幣型。

字符數(shù)據(jù)類型:它包括字符型、字符串型。布爾數(shù)據(jù)類型

日期數(shù)據(jù)類型對象數(shù)據(jù)類型用戶自定義數(shù)據(jù)類型:它包括結(jié)構(gòu)、類、枚舉。

由于VisualBasic.NET是一種面向?qū)ο蟮某绦蛟O(shè)計語言,因此,每種數(shù)據(jù)類型實質(zhì)上都是類。表2.1VisualBasic.NET2005的數(shù)據(jù)類型

2.4命名空間

1.命名空間的概念命名空間(NameSpace),就是讓每一個名稱都有自己的活動空間,不會互相混淆。每個命名空間都含有與整個應(yīng)用程序的某一部分相關(guān)聯(lián)的類,根據(jù)命名空間,可以清楚地知道某個類與應(yīng)用程序的哪一個部分相關(guān)聯(lián)。

命名空間是分層的,.NET框架本身具備自己定義好的命名層次空間,整個框架的根命名空間是System,在不同層的命名空間里定義了大量的類和組件。

VisualBasic.NET常用的命名空間有以下幾種:System、System.Reflection、System.Io、System.Collection、System.Web、System.NET、System.Data、System.Windows.Forms等。

2.命名空間的使用引用命名空間有以下三種方法:

(1)項目引用

在出現(xiàn)的快捷菜單中單擊“添加引用”菜單命令右鍵單擊單擊“查看所有文件

”按鈕(2)直接引用在程序代碼中直接寫明命名空間的全名(即完全限定名),從高到低依次寫明每一級命名空間名稱,各部分之間用“.”隔開。如:System.Math.Sqrt(10),表示使用命名空間System.Math中的Sqrt函數(shù)。(3)使用Imports語句Imports[別名=]命名空間注:Imports語句必須放在模塊文件所有語句的前面,但可放在Option語句的下面。如:ImportsSystem.Math

3.自定義命名空間自定義命名空間用NameSpace語句完成,格式是:NameSpace

命名空間名…EndNameSpace處于NameSpace和EndNameSpace之間的部分就是命名空間的范圍。

可以定義模塊、類、枚舉、結(jié)構(gòu)等。不能定義屬性、過程、變量或事件等項目2.5常量與變量

2.5.1常量與符號常量1.直接常量

以直接明顯的形式寫出的各種數(shù)據(jù),常量的數(shù)據(jù)類型由用戶在程序中的書寫格式來自動區(qū)分,而不需要聲明和定義。

VisualBasic.NET的直接常量包括數(shù)值常量、字符常量、日期常量、布爾常量。(1)數(shù)值常量:包括整數(shù)常量、浮點常量和貨幣常量三類。

①整數(shù)常量:主要包括整型、無符號整型、短整型、無符號短整型、長整型、無符號長整型、字節(jié)型和無符號字節(jié)型。

程序中,用戶可以根據(jù)需要采用十進制、八進制和十六進制的形式表示和書寫整數(shù)。

十進制形式:數(shù)字只能為0~9,直接按十進制格式書寫。如:100、-999I、300%等都是正確的用十進制方式表示的整型常量,而88888&是一個用十進制表示的長整型常量、1000S是一個用十進制表示的短整型常量。八進制形式:數(shù)字只能為0~7,數(shù)字前冠以&O(字母O,而不是數(shù)字0)、&o或&。如:&O100、&O123、&475、-&O123都是正確的八進制方式表示的整型常量,而&O574&、&o50000L是用八進制方式表示的長整型常量。十六進制形式:數(shù)字可以是0~9及A~F或a~f,數(shù)字前冠以&H或&h。如:&H41、&h61、-&HFFF等都是正確的十六進制方式表示的整數(shù)常量,而&H8000000F&表示一個用十六進制方式表示的長整型常量。 ②

浮點常量

:包括單精度浮點數(shù)和雙精度浮點數(shù)。

浮點數(shù)可以用小數(shù)形式和指數(shù)形式來書寫

當(dāng)用指數(shù)形式來書寫時,浮點數(shù)由尾數(shù)、指數(shù)符號和指數(shù)三部分組成

精度:7位十進制數(shù)

精度:16位十進制數(shù)

-12.45、3.14#、45.1R都是以小數(shù)形式表示的雙精度常數(shù)

2.71828!、10.45F都是以小數(shù)形式表示的單精度常數(shù)

-1.2E5!或-1.2e5F是一個單精度的浮點常數(shù),其值等價于-1.2×105

-3.4E-6#或-3.4e-6R是一個雙精度的浮點常數(shù),其值等價于-3.4×10-6

③貨幣型常量(即定點數(shù)):它以16個字節(jié)整數(shù)數(shù)字形式保存,使得整數(shù)也可處理的實數(shù)達29位(含小數(shù)點),是精確小數(shù)的表示形式,數(shù)值末尾可加類型說明符“@”或“D”。(2)字符和字符串常量字符常量是由半角英文雙引號括起來的一個字符.字符串常量是由半角英文雙引號括起來的一串字符。①字符串長度:字符串中所包含的字符的個數(shù),字符串兩端的定界符雙引號不計在內(nèi)。②如果串中字符有雙引號時,必須用兩個連續(xù)的雙引號來表示一個雙引號。③空字符串與空格字符串:空字符串是用一對連續(xù)的雙引號表示,即"",其長度為0;而空格字符串是定界符雙引號內(nèi)有一個至多個空格符,其長度大于0,如:""。④字符串中的字符是區(qū)分大小寫的,在計算機中是靠字符的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中,符號常量分為內(nèi)部(系統(tǒng)定義)常量和用戶自定義符號常量。

(1)內(nèi)部常量

VisualBasic.NET系統(tǒng)內(nèi)部,定義了一些有意義的、便于記憶的名稱符號用以代表一些常數(shù)值或字符串,這些名稱符號稱為內(nèi)部常量。內(nèi)部常量常用“vb”作為前綴,它們被定義在Microsoft.VisualBasic命名空間下。如:

vbCrLf表示回車/換行字符組合。

vbCr表示回車符。

(2)用戶自定義符號常量[Public|Private]Const常量名[As數(shù)據(jù)類型]=表達式[,常量名[As數(shù)據(jù)類型]=表達式]……

注意:①在定義符號常量時,如果未指明數(shù)據(jù)類型時,則ViusalBasic.NET根據(jù)定義中表達式的求值結(jié)果確定常量的數(shù)據(jù)類型。②可以在符號常量名后加“類型符”來表示符號常量的類型。③如果在一行中同時定義多個符號常數(shù)時,則它們之間要用逗號進行分隔。④可以利用已經(jīng)定義過的符號常量,再去定義另外一個新的符號常量,但要避免循環(huán)定義符號常量。⑤符號常量名中的字母不分大小寫。⑥同一個符號常量不能多次重復(fù)定義。⑦只能在模塊或過程級別使用Const。2.5.2變量及其命名規(guī)則1.變量的概念

在程序的執(zhí)行過程中,其值在不斷發(fā)生變化的數(shù)據(jù)稱為變量。

2.變量的命名規(guī)則(1)變量名只能由字母(A~Z或a~z)、數(shù)字(0~9)、下劃線“_”或漢字組合形成,總字符個數(shù)不得超過1023個字符,且必須以字母(或漢字)開頭,所有字母不區(qū)分大小寫,但一般習(xí)慣單詞的第一個字母大寫。(2)不能用VisualBasic.NET的關(guān)鍵字或在關(guān)鍵字后面加類型說明符作為變量名。(3)在同一個范圍內(nèi),變量名必須是惟一的。(4)建議變量的命名要便于記憶、有意義和簡明。Myname、sum、x1 integer、abc.123、1abxy合法不合法2.5.3變量的聲明與初始化 變量的聲明包括顯示式聲明和隱式聲明兩種。

1.顯式聲明

聲明關(guān)鍵字<變量名1>[As<類型1>][=初始值1][,<變量名2>[As<類型2>][=初始值2]]……【例2.4】設(shè)有語句Dimx,yAsSingle,z%,則變量x、y和z的數(shù)據(jù)類型分別為

、

。

2.隱式聲明

隱式聲明是在使用變量之前不需要事先聲明該變量,而是在變量名之后緊跟一個代表數(shù)據(jù)類型的類型符,來說明該的數(shù)據(jù)類型。方法1:在代碼的開頭處寫上OptionExplicit語句,該語句的語法格式是:OptionExplicit[On|Off]方法2:顯式聲明3.關(guān)于被聲明變量的初始默認值(1)數(shù)值類型變量(即:Double,Single,Decimal,Integer,Long,Byte等類型)被聲明后的初始默認值為0。(2)Boolean類型的變量被聲明后的初始默認值為False。(3)Date類型的變量被聲明后的初始默認值為0:00:00。(4)字符串類型的變量被聲明后的初始默認值為空串即“”。4.關(guān)于對象類型(object)的變量

此類變量可存放數(shù)值、字符串甚至是對象,使用起來很有彈性,但要占用更多內(nèi)存且運算速度變慢,聲明時應(yīng)根據(jù)慎重使用。

2.5.4結(jié)構(gòu)數(shù)據(jù)類型1.結(jié)構(gòu)數(shù)據(jù)類型及其定義VisualBasic.NET中定義結(jié)構(gòu)類型的語法格式是:[Public|Private]Structure結(jié)構(gòu)類型名

Dim|Private|Public成員名1As數(shù)據(jù)類型

Dim|Private|Public成員名2As數(shù)據(jù)類型……EndStructure如:定義一個名稱為StudentRecord的結(jié)構(gòu)類型,來表示學(xué)生基本信息,則定義語句為:PublicStructureStudentRecord

DimSidAsString'學(xué)號

DimSnameAsString'姓名

DimSclassAsString'班級

DimSageAsInteger'年齡EndStructure2.聲明結(jié)構(gòu)類型的變量當(dāng)程序中已定義了結(jié)構(gòu)數(shù)據(jù)類型后,就可以在程序中定義某個變量屬于這種類型,格式與定義基本數(shù)據(jù)類型的變量格式完全一樣。DimstuAsStudentRecordPrivateStu1AsStudentRecord3.結(jié)構(gòu)類型變量成員的引用(1)當(dāng)已經(jīng)定義了某個結(jié)構(gòu)類型的變量時,該變量就具有了該種結(jié)構(gòu)類型的全部成員,要使用其中的某個成員時,格式是:

結(jié)構(gòu)類型變量名.成員名

(2)結(jié)構(gòu)類型變量中的每一個成員就是一個變量。(3)當(dāng)逐一表示結(jié)構(gòu)類型變量中的成員時,可以用With…EndWith語句來進行簡化,語句格式是:With結(jié)構(gòu)類型變量名語句塊EndWith【例2.5】編寫一Windows應(yīng)用程序,其中定義一表示學(xué)生信息的結(jié)構(gòu)類型StudentRecord,包括:Sid、Sname、Sclass、Sage共四個成員,并定義該結(jié)構(gòu)類型的變量stu,接著對其成員進行賦值,最后輸出該變量各成員的值?!纠?.6】進入VisualStudio.NET2005集成開發(fā)環(huán)境,新建一個VisualBasic類型的Windows應(yīng)用程序項目,項目名稱為“Exp2-6”,解決方案名稱為“Exp2-6”,存放位置為“E:\Program”。進入代碼編輯窗口,在窗體類內(nèi)部的聲明區(qū)定義屬于本類范圍(Private)可以使用的結(jié)構(gòu)數(shù)據(jù)類型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枚舉數(shù)據(jù)類型1.枚舉數(shù)據(jù)類型的定義

當(dāng)一個變量只有幾種固定的取值時,可以定義枚舉類型,將該變量的取值一一列舉出來,從而該變量的取值只限于列舉出來的值的范圍

枚舉類型的定義格式:[Public|Private]Enum

枚舉名稱[As數(shù)據(jù)類型]

成員名1[=常數(shù)表達式]

成員名2[=常數(shù)表達式]……EndEnum注意:(1)定義枚舉類型時,可在Enum關(guān)鍵字前面加上Public、Private等,表示枚舉類型可以使用的范圍。如果省略,則默認為Public(2)“數(shù)據(jù)類型”可以是Byte、Integer、Long、SByte、Short、UInteger、ULong

或UShort等,如果沒有指定“As數(shù)據(jù)類型”,則默認為Integer類型。(3)“枚舉名稱”由用戶給出,其命名規(guī)則同變量的命名規(guī)則,“成員名”是枚舉數(shù)據(jù)類型中所包含的各個成員,這些成員是常數(shù),即枚舉類型的各個取值。(4)“常數(shù)表達式”是可選的,如果省略,在默認情況下,枚舉中的第一個成員(常數(shù))被初始化為0,其后的成員初始化為比其前面的成員大1的數(shù)值。(5)可以用賦值語句顯式地給枚舉中的成員賦值,所賦的值可以是任何整型的數(shù)。(6)引用枚舉類型中的成員的格式是:枚舉名稱.成員名

2.定義枚舉類型的變量當(dāng)程序中定義了枚舉數(shù)據(jù)類型后,就可以利用像定義一個基本數(shù)據(jù)類型的變量那樣定義一個枚舉類型的變量。格式與前面所介紹的定義基本類型的變量的格式完全一樣。

當(dāng)對變量w賦值時(即當(dāng)輸入“w=”時),系統(tǒng)將自動提示可以給變量w賦值的值列表(即列出枚舉類型中的所有成員)

2.6VisualBasic.NET的運算符和表達式

2.6.1算術(shù)運算符與算術(shù)表達式1.VisualBasic的算術(shù)運算符

運算符名稱表達式及運算結(jié)果舉例+加a+b,值為14-減a-b,值為6*乘a*b,值為40/除a/b,值為2.5^乘方a^b,值為10000\整除a\b,值為2Mod求余(取模)aModb,值為2-取負-a,值為-102.算術(shù)表達式

在書寫表達式時應(yīng)注意與數(shù)學(xué)上的表達式寫法上的區(qū)別:(1)表達式中所有符號都必須一個一個并排寫在同一橫線上,不能寫成上標或下標的形式。(2)表達式中的乘號不能省略。(3)表達式中所有的括號一律使用圓括號,并且括號左右必須配對。(4)數(shù)學(xué)表達式中的表示特定含義的符號要寫成具體的數(shù)值。3.算術(shù)運算符的優(yōu)先級在所有的8個算術(shù)運算符中,指數(shù)運算符(^)優(yōu)先級最高,其次依次是取負(-)、乘(*)和浮點除(/)、整除(\)、取模(Mod)、加(+)和減(-)。其中乘和除是同級運算,加和減是同級運算。當(dāng)遇到同一級運行時,按從左向右的次序進行。如果表達式中含有括號,則先計算括號內(nèi)表達式的值;有多層括號時,先計算內(nèi)層括號的值,再求外層括號內(nèi)表達式的值。

【例2.7】進入VisualStudio.NET2005集成開發(fā)環(huán)境,新建一個VisualBasic類型的Windows應(yīng)用程序項目,項目名稱為“Exp2-7”,解決方案名稱為“Exp2-7”,存放位置為“E:\Program”。在窗體上添加一命令按鈕Button1。進入代碼編輯窗口,在窗體模塊的最頂端的聲明區(qū)定義在整個程序中都可用的(即定義為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

當(dāng)程序運行時,用戶單擊命令按鈕Button1后,則在輸出窗口中輸出的結(jié)果為()。

A)0

B)1

C)2

D)3

2.6.2字符串連接運算符與字符串表達式

1.字符串連接運算符

(1)&(2)+一般情況下,二者在使用上沒有區(qū)別,但“&”會自動將非字符串類型的數(shù)據(jù)轉(zhuǎn)換成字符串后再進行連接運算,而“+”則不能自動轉(zhuǎn)換。如:"abc"+"123"'結(jié)果是abc123"abc"+123'結(jié)果出錯"abc"&123'結(jié)果為abc123在對兩個字符串作連接運算時,用“&”比“+”更可靠和安全。2.字符串表達式一個字符串表達式是由字符串常量、字符串變量、字符串函數(shù)、字符串運算符和括號等連接形成的一個有意義的運算式子。如:“xyz”&“123”就是一個字符串表達式。3.字符串連接運算符的優(yōu)先級

在VisualBasic.NET中,字符串連接運算符的優(yōu)先級是低于所有的算術(shù)運算符,而高于其他的運算符。

2.6.3關(guān)系運算符與關(guān)系表達式1.關(guān)系運算符

運算符含義關(guān)系表達式的例子=等于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測試對象數(shù)據(jù)類型注:(1)Like運算符樣式包括:①?,表示該位置字符允許使用任何單一字符。②#,表示該位置字符只允許使用數(shù)字字符。③*,表示該位置字符的字符數(shù)不限(任意多個)或0個。④[charlist],允許使用charlist內(nèi)任何單一字符。⑤[!charlist],不允許使用charlist內(nèi)任何單一字符。(2)Is運算符是一種對象引用比較運算符,它不會比較對象或?qū)ο笾?,只是進行檢查,判斷兩個對象引用是否代表同一對象。而IsNot運算符的功能與Is相反,它用來判斷兩個對象引用是否代表不同對象。2.關(guān)系表達式及其求值關(guān)系表達式是用關(guān)系運算符、算術(shù)表達式、字符串表達式和括號等連接形成的一個有意義的運算式子。關(guān)系運算符兩側(cè)參加運算的數(shù)據(jù)類型必須完全一致。說明:(1)一個關(guān)系表達式的運算結(jié)果是一個Boolean類型的值。(2)在對兩個數(shù)值表達式進行關(guān)系運算時,是比較兩個數(shù)值的大小。(3)日期型數(shù)據(jù)進行比較時,較早的日期小于較晚的日期。(4)對于字符型數(shù)據(jù)的比較,取決于OptionCompare語句的狀態(tài),該語句的格式是:OptionCompareBinary|Text

(5)如果直接比較單個字符,則比較兩個字符的ASCII碼的大小

如果比較兩個字符串,則從關(guān)系運算符的左邊字符串的第一個字符開始,逐一和右邊字符串的對應(yīng)位置上的字符進行比較(即比較對應(yīng)位置上的字符的ASCII碼),其中ASCII值較大的字符所在的字符串大。

"abc">"abyz"

"XYZ"<"X123""abc"<"abcd“(6)當(dāng)對單精度或雙精度數(shù)使用比較運算符時,應(yīng)避免對兩個浮點數(shù)直接作“相等”或“不相等”的判別和比較,否則可能會得出錯誤的結(jié)果。

FalseFalseFalse3.關(guān)系運算符的優(yōu)先級

所有的關(guān)系運算符的優(yōu)先級都相同,屬于同一級運算,在運算時按從左向右的次序進行運算。關(guān)系運算符的運算優(yōu)先級低于所有算術(shù)運算符和字符串連接運算符,而高于其他的運算符?!纠?.8】Like運算符應(yīng)用舉例,計算以下各關(guān)系表達式的值:"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。但當(dāng)?shù)谝粋€表達式的值為False時,則不再計算第二個表達式的值OrElse邏輯或兩個表達式有一個為True時,整個表達式的值為True,否則為False。但當(dāng)?shù)谝粋€表達式的值為True時,不再計算第二個表達式的值2.邏輯表達式及其求值

邏輯表達式是由其他各種表達式、邏輯運算符、布爾常量、布爾變量、函數(shù)和括號等連接形成的運算式子。其一般格式為:<表達式1><邏輯運算符><表達式2>

說明:

(1)如果參加邏輯運算的數(shù)據(jù)為布爾值時,邏輯運算的值為布爾值,即為True或False。xyNotxxAndyxOryxXoryxAndAlsoyxOrElseyTrueTrueFalseTrueTrueFalseTrueTrueTrueFalseFalseFalseTrueTrueFalseTrueFalseTrueTrueFalseTrueTrueFalseTrueFalseFalseTrueFalseFalseFalseFalseFalse表2.5邏輯運算符的運算結(jié)果表

xyxAndAlsoyTrueTrueTrueTrueFalseFalseFalse不處理,以節(jié)省時間False表2.6邏輯運算符AndAlso的運算結(jié)果表

xyxOrElseyTrue不處理,以節(jié)省時間TrueFalseTrueTrueFalseFalseFalse表2.7邏輯運算符OrElse的運算結(jié)果表

(2)如果參加邏輯運算的操作數(shù)是數(shù)值表達式時,此時進行的是按位運算,即把參加運算的數(shù)據(jù)轉(zhuǎn)換成16位(整數(shù))或32位(長整數(shù))二進制數(shù),然后分別對兩個二進制數(shù)的二進制位進行運算,運算的結(jié)果是一個整型數(shù)值。用法功能舉例Nota將數(shù)值a轉(zhuǎn)換成二制數(shù),然后將每個二進制位按位取反,即1變0,0變1Not2=Not0000000000000010結(jié)果為:1111111111111101=-3aAndb將數(shù)值a和b分別轉(zhuǎn)換成二進制數(shù),對應(yīng)的二進制位進行按位與運算,即對應(yīng)的二進制位上都為1時,則該二進制位的結(jié)果為1,否則為02And3=0000000000000010And0000000000000011結(jié)果:0000000000000010轉(zhuǎn)換為十進制數(shù)為2

邏輯運算符進行按位運算的功能及運算結(jié)果表

2And3=0000000000000010And00000000000000112Or3=0000000000000010Or00000000000000112Xor3=0000000000000010

Xor0000000000000011用法功能舉例aOrb將數(shù)值a和b分別轉(zhuǎn)換成二進制數(shù),對應(yīng)的二進制位進行按位或運算,即只要對應(yīng)的二進制位上有一個為1時,則該二進制位的結(jié)果為1,否則為0結(jié)果:0000000000000011轉(zhuǎn)換為十進制數(shù)為3aXorb將數(shù)值a和b分別轉(zhuǎn)換成二進制數(shù),對應(yīng)的二進制位進行按位異或運算,即對應(yīng)的二進制位上的數(shù)字不相同時,則該二進制位的結(jié)果為1,否則為0結(jié)果:0000000000000001轉(zhuǎn)換為十進制數(shù)為13.邏輯運算符的優(yōu)先級邏輯運算符的優(yōu)先級由高到低依次為:Not、And和AndAlso、Or和OrElse

2.6.5賦值運算符與復(fù)合賦值運算符運算符功能示例=賦值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各種運算符的優(yōu)先級比較所有運算符中,同一級運算一律按運算次序(從左向右或從右向左)進行運算,括號內(nèi)的運算優(yōu)先進行,處在最內(nèi)層括號里的運算首先進行,然后從內(nèi)層向外層進行運算。優(yōu)先級運算符運算次序1()從內(nèi)向外2^從內(nèi)向外3-(取負)從內(nèi)向外4*/從左向右5\從左向右6Mod從左向右7+-從左向右運算符的優(yōu)先級優(yōu)先級運算符運算次序8&(字符串連接)從左向右9=><<>>=<=LikeIsTypeof…Is從左向右10Not從左向右11AndAndAlso從左向右12OrOrElse從左向右13Xor從右向左14=+=-=*=/=\=^=&=從右向左利用“命令窗口”來測試某個表達式的值

2.7VisualBasic.NET的內(nèi)部函數(shù)

由系統(tǒng)本身提供的、用戶可直接使用的函數(shù)可統(tǒng)稱為內(nèi)部函數(shù)(或庫函數(shù)、標準函數(shù))。(1)VisualBasic.NET函數(shù)庫的名稱空間和模塊

①Conversion類②VbMath類③DateAndTime類④Strings類(2).NET基礎(chǔ)類庫中的名稱空間和類VisualBasic.NET中常用的內(nèi)部函數(shù),大多數(shù)已分別遷移到相應(yīng)的命名空間內(nèi),使用時需要引入相應(yīng)的命名空間,或直接在函數(shù)名前面寫清楚相應(yīng)的命名空間和所屬的類(即函數(shù)的完全限定名),即: 命名空間名.函數(shù)名([參數(shù)表])轉(zhuǎn)換函數(shù)隨機函數(shù)日期、時間函數(shù)

字符串處理函數(shù)

2.7.1數(shù)學(xué)函數(shù)存在于System.Math命名空間調(diào)用的形式是:System.Math.函數(shù)名(參數(shù)表)

在模塊的開頭處加入Imports語句:ImportsSystem.Math

函數(shù)名功能說明Abs(x)求絕對值Sign(x)求數(shù)字符號,當(dāng)x>0時,返回值為1;當(dāng)x<0時,返回值-1;當(dāng)x=0時,返回值0Sqrt(x)求平方根Exp(x)指數(shù)函數(shù),求exPow(x,y)求xyLog(x)求自然對數(shù)Log10(x)求以10為底的常用對數(shù)Sin(x)正弦函數(shù),x為弧度Cos(x)余弦函數(shù),x為弧度Math類的常用數(shù)學(xué)函數(shù)

函數(shù)名功能說明Tan(x)正切函數(shù),x為弧度Asin(x)反正弦Acos(x)反余弦Atn(x)反正切函數(shù)Max(x,y)返回x和y中的較大者Min(x,y)返回x和y中的較小者Round(x)將x的小數(shù)部分第一位進行四舍五入后,取整Floor(x)取整,返回小于或等于指定數(shù)字x的最大整數(shù)Ceiling(x)取整,返回大于或等于指定數(shù)字x的最小整數(shù)

【例2.10】與數(shù)學(xué)表達式ln(ex+|arctg(x)|)+cos2x對應(yīng)的VisualBasic.NET的表達式是()(假設(shè)已經(jīng)用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隨機數(shù)函數(shù)存在于Microsoft.VisualBasic命名空間下的VBMath類中

1.Rnd函數(shù)

函數(shù)格式:Rnd[(x)]

函數(shù)功能:可產(chǎn)生一個0~1之間的單精度隨機數(shù)(該值是大于或等于0,但小于1的數(shù)),下一個要產(chǎn)生的隨機數(shù)受自變量x的影響,分別為:(1)當(dāng)x<0時,則每次產(chǎn)生的隨機數(shù)都相同。(2)當(dāng)x>0或省略時,產(chǎn)生下一個隨機數(shù)。(3)當(dāng)x=0時,則該次產(chǎn)生的隨機數(shù)與上一次產(chǎn)生的隨機數(shù)相同。System.Math.Floor(Microsoft.VisualBasic.VBMath.Rnd()*100+1)

雙精度數(shù)產(chǎn)生1~100之間的隨機整數(shù)

2.Randomize函數(shù)

語句格式:Randomize[(x)]語句功能:在上面語句中,自變量x為一雙精度數(shù),它是隨機數(shù)發(fā)生器的“種子數(shù)”,可以省略,如果省略,則VisualBasic.NET取系統(tǒng)內(nèi)部的計時器的返回值用作新的種子值。由于內(nèi)部時鐘在不停地變化,所以,每次執(zhí)行時隨機數(shù)種子數(shù)也不相同,從而可以產(chǎn)生不同的隨機數(shù)序列。如果給出隨機數(shù)的種子數(shù)(即x不省略),則產(chǎn)生與x對應(yīng)的一個特定序列的隨機數(shù)。

2.7.3轉(zhuǎn)換函數(shù)Microsoft.VisualBasic命名空間下的Conversion類的常用轉(zhuǎn)換函數(shù)

函數(shù)名功能說明舉例Fix(x)對數(shù)值x取整,截去小數(shù)部分Fix(5.7)結(jié)果為5,F(xiàn)ix(-10.9)結(jié)果為-10Int(x)求不大于x的最大整數(shù)Int(5.7)結(jié)果為5,Int(-10.9)結(jié)果為-11Hex(x)將十制數(shù)x轉(zhuǎn)換為對應(yīng)的十六進制值的字符串Hex(100)結(jié)果為字符串"64"Oct(x)將十進制數(shù)x轉(zhuǎn)換為對應(yīng)的八進制值字符串Oct(10)結(jié)果為字符串"12"Str(x)將數(shù)值x轉(zhuǎn)換為對應(yīng)的字符串Str(100)結(jié)果為字符串"︼100"(︼表示空格符,下同)Val(x)將字符串x轉(zhuǎn)換為對應(yīng)的數(shù)值Val("-5.14")結(jié)果為數(shù)值-5.14說明:(1)Val函數(shù)Val函數(shù)的功能是將字符串轉(zhuǎn)換為數(shù)值如果被轉(zhuǎn)換的字符串是一個非數(shù)字字符串,則該函數(shù)的函數(shù)值為0如果在字符串轉(zhuǎn)換過程中遇到非數(shù)字字符(除指數(shù)符號、小數(shù)點和正負號外),則轉(zhuǎn)換停止,非數(shù)字字符不轉(zhuǎn)換。(2)Str函數(shù)Str函數(shù)的功能是將數(shù)值轉(zhuǎn)換為字符串如果被轉(zhuǎn)換的數(shù)值是正數(shù)時,則轉(zhuǎn)換后對應(yīng)的字符串包含一個前導(dǎo)空格,暗示為加號如果為負數(shù),則返回的字符串包含減號(-),沒有前導(dǎo)空格。2.7.4日期和時間函數(shù)Microsoft.VisualBasic命名空間下的DateAndTime類的常用日期時間函數(shù)

函數(shù)名功能說明舉例Now或Now()返回系統(tǒng)當(dāng)前的日期和時間,該值為Date型Now()結(jié)果為:#3/26/20082:23:13PM#Today或Today()返回系統(tǒng)當(dāng)前的日期,該值為Date型Today()結(jié)果為:#3/26/2008#Day(D)返回日期D中的日子,結(jié)果為Integer型Day(Now())結(jié)果為26Month(D)返回日期中的月份(1~12),結(jié)果為Integer型Month(Now())結(jié)果為3Year(D)返回日期中的年份,結(jié)果為Integer型Year(Now())結(jié)果為2008Hour(D)求時間中的小時數(shù)(0~23),結(jié)果為Integer型Hour(Now())結(jié)果為14函數(shù)名功能說明舉例Minute(D)求時間中的分鐘數(shù)(0~59),結(jié)果為Integer型Minute(Now())結(jié)果為23Second(D)求時間中的秒數(shù)(0~59),結(jié)果為Integer型Second(Now())結(jié)果為13Timer或Timer()求從午夜起到現(xiàn)在已經(jīng)歷過的秒數(shù),結(jié)果為Double型Timer()結(jié)果為52284.4375TimeOfDay()返回系統(tǒng)當(dāng)前的時間,結(jié)果為Date類型TimeOfDay()結(jié)果為17:15:21WeekDay(D)求指定日期是星期幾,結(jié)果為Integer型,1代表星期日,2代表星期一,……WeekDay(Now())結(jié)果為4WeekDayName(n)返回星期幾,n為1時返回“星期日”,為2時返回“星期一”,……WeekDayName(1)結(jié)果為“星期一”2.7.5字符串處理函數(shù)函數(shù)名功能說明Trim(字符串表達式)刪除字符串兩端空格字符LTrim(字符串表達式)刪除字符串左端空格字符RTrim(字符串表達式)刪除字符串右端空格字符Left(字符串表達式,n)從原字符串的左端截取n個字符,結(jié)果為截取的子串Right(字符串表達式,n)從原字符串的右端截取n個字符,結(jié)果為截取的子串Mid(字符串表達式,n,m)從字符串表達式所表示的字符串的第n個字符開始(包括第n個字符)端截取m個字符,結(jié)果為截取的子串。Len(字符串表達式)求字符串的長度,或求某個變量所占的存儲空間(字節(jié)數(shù))Space(n)產(chǎn)生由n個空格字符組成的字符串Microsoft.VisualBasic命名空間下Strings類的字符串處理函數(shù)

函數(shù)名

功能說明

InStr([首字符位置,]字符串1,字符串2[,n])在“字符串1”中查找“字符串2”,若找到,則返回其在“字符串1”中第一次出現(xiàn)時的的位置(即第幾個字符)UCase(字符串表達式)將字符串中的所有字母字符均轉(zhuǎn)換成大寫,非字母字符不變LCase(字符串表達式)將字符串中的所有字母字符均轉(zhuǎn)換成小寫,非字母字符不變Asc(字符串表達式)求字符串表達式中的第一個字符的ASCII碼值Chr(表達式)求以表達式的值為ASCII碼的字符函數(shù)名

功能說明

StrComp(字符串1,字符串2[,比較方式])求字符串1和字符串2比較的結(jié)果。若字符串1>字符串2,則結(jié)果為1;若兩串相等,則結(jié)果為0;若字符串1<字符串2,則結(jié)果為-1?!氨容^方式”可以取0或1,取0時表示比較時要區(qū)分大小寫,取1時表示比較時不區(qū)分大小寫StrReverse(字符串)將字符串中的字符順序顛倒,并返回逆序后的字符串Replace(字符串1,字符串2,字符串3)將字符串1中出現(xiàn)的與字符串2中字符完全相同的部分用字符串3替換Strings類的字符串處理函數(shù)

說明:(1)關(guān)于Len函數(shù)該函數(shù)的功能即可求字符串的長度,也可求某個變量所占的存儲空間(字節(jié)數(shù))。

(2)關(guān)于Instr函數(shù)

①Instr函數(shù)的格式是:

InStr([首字符位置,]字符串1,字符串2[,n])

條件Instr的函數(shù)值字符串1為零長度字符串或Nothing(Nothing關(guān)鍵字表示任意數(shù)據(jù)類型的默認值)0字符串2為零長度字符串或Nothing首字符位置在字符串1中未找到字符串20在字符串1找到字符串2找到的位置首字符位置>字符串2的長度0Instr函數(shù)的函數(shù)值

②參數(shù)“首字符位置”是可選的,如果有“首字符位置”,則從該位置開始查找,否則從“字符串1”的第1個字符開始查找,“首字符位置”是一個整型數(shù)。③函數(shù)的最后一個自變量n是可選的,它是一個整型數(shù),用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論