第3章 VB.NET基本語法_第1頁
第3章 VB.NET基本語法_第2頁
第3章 VB.NET基本語法_第3頁
第3章 VB.NET基本語法_第4頁
第3章 VB.NET基本語法_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章

VB.NET基本語法

3.1概述 3.2數(shù)據(jù)類型

3.3常量和變量

3.4運算符和表達式 3.5流程控制 3.6數(shù)組 3.7過程 3.8類和對象基本概念 3.9本章小結

3.1概述3.1.1標識符和關鍵字 標識符命名規(guī)則是:

l

必須以字母開頭,后跟字母、數(shù)字或下劃線(_);

l

長度小于等于255個字符;

l

不能使用VB.NET的關鍵字。3.1.2注釋 (1) Rem注釋文本 (2) ‘注釋文本

ConstPI=3.14159 :Rem常量定義

ConstPI=3.14159 ‘常量定義3.1.3一句多行和一行多句 如果語句較短,可在一行中放置多個語句,各語句之間用冒號分隔。

例如:

A=1:B=2:C=3

如果語句較長,可以使用續(xù)行符“_”將語句分成多行。

TxtCaption.Text="VisualBasic.NET是"&_ "最易使用的語言之一" '本行是上行的續(xù)行3.2數(shù)據(jù)類型

3.2.1標準數(shù)據(jù)類型

1.數(shù)值(Numeric)數(shù)據(jù)類型

2.字節(jié)(Byte)數(shù)據(jù)類型

字節(jié)類型用以存儲二進制數(shù)據(jù),占一個字節(jié),關鍵字為System.Byte,其表數(shù)范圍在 0到255之間的整數(shù),是一個無符號的數(shù)據(jù)類型。

3.邏輯(Boolean)數(shù)據(jù)類型

即True(真)或False(假)。3.2數(shù)據(jù)類型4.日期(Date)數(shù)據(jù)類型

Date類型用來保存日期和時間數(shù)據(jù),占8字節(jié),關鍵字為System.DateTime,

取值范圍為1-1-00010:00:00~12-31-999923:59:59的日期時間。 5.字符串(String)數(shù)據(jù)類型

String類型用于保存字符串數(shù)據(jù),一個字符占1字節(jié),一個漢字占2字節(jié), 關鍵字為System.String,字符串最大長度可達20億(231)個Unicode字符。 6.對象(Object)數(shù)據(jù)類型

Object類型用來存儲應用程序中的對象,可存放任何類型的數(shù)據(jù), 占4字節(jié),關鍵字為System.Object。3.2.2用戶自定義數(shù)據(jù)類型

用戶自定義類型在VisualBasic.NET中稱為“structure”,包含一個或多個不同種類的數(shù)據(jù)類型,視自定義類型的成員來決定存放的數(shù)據(jù),關鍵字為System.ValueType。用戶自定義類型數(shù)據(jù)占用的內(nèi)存空間是其包含所有數(shù)據(jù)類型所占用內(nèi)存空間的總和。3.3常量和變量

3.3.1常量

1. 直接量 直接量是直接常量的簡稱,指在程序中直接以值形式出現(xiàn)的量。

2. 用戶自定義符號常量 常量定義語法:

Const符號常量名[As類型名]=表達式 例如:

ConstPI=3.14159 '省略類型名,依表達式值確定PI為Double類型

ConstNameAsString=“張華” '定義一個字符串常量,值為"張華"

ConstArea=PI*5*5 '表達式可使用已定義過的符號常量 可以在一行內(nèi)定義多個常量。例如:

ConstPI=3.14159,NameAsString="張華",Area=PI*5*5

3. 系統(tǒng)定義符號常量

系統(tǒng)定義的符號常量具有特定的含義,在程序中可直接引用。

3.3.2變量

變量通常用于存儲程序的中間結果和最終結果。 變量聲明語法:Dim變量名[As[New]數(shù)據(jù)類型][=表達式]

3.3常量和變量

其中,[As[New]數(shù)據(jù)類型]說明了變量的類型,若省略它,則變量為Object類型。[=表達式]給出變量的初始值,可以省略。例如,下列代碼段是在Form.Load事件過程中聲明兩個變量intVar和strVar:

PrivateSubFirn.Load()DimintVarAsInteger=10 ‘聲明一個整型變量intVar,并賦初值10

DimstrVarAsString ‘聲明一個字符串變量strVar

strVar="VisualBasic.NET" EndSub

可以在一個Dim語句中定義多個變量。例如:

DimXAsLong,YAsSingle,NameAsStrng

若要在聲明對象變量的同時創(chuàng)建對象實例,就要使用New關鍵字。例如:

Dimobj1AsSystem.Buffer ‘聲明一個System.Buffer類型的對象變量

Dimobj2AsNewSystem.Buffer() ‘聲明一個System.Buffer類型的對象變量‘并創(chuàng)建對象實例

3.4運算符和表達式

3.4.1算術運算符 算術運算是用來進行數(shù)值計算的運算符,共有7個:+、-、*、/、\、Mod和^。其中+、 -、*分別是加法、減法和乘法運算,含義很明確。

l

^運算符:求一個數(shù)的某次方。例如2^3,表示求23。

l

/運算符:兩個數(shù)相除并返回一個浮點數(shù)商。例如3/4,表示求3除以4所得的商。

l

\運算符:兩個整數(shù)進行整除并返回整數(shù)商。例如3\4,表示求3除以4所得的整數(shù)商。

l

Mod運算符:兩個數(shù)相除并返回余數(shù)。例如3Mod4,表示求3除以4所得的余數(shù)。

3.4.2關系運算符常用的關系運算符如表3.3所示。

表3.3常用關系運算符此外,VB.NET還有兩種關系運算符:Is和Like。

3.4運算符和表達式

1、Is運算符

Is運算符用于對象比較,因此要求操作數(shù)是Object類型,如果兩個操作數(shù)表示同一個 對象,那么返回“True”,反之則返回“False”,

2、Like運算符

Like運算符用于字符串的模式匹配,即判斷一個字符穿是否符合某個模式。 3.4.3連接運算符 連接運算符用于合并兩個字符串,運算符有“&”和“+”,如表所示。

表3.4連接運算符

例如:

MyStr="Hello,"&"world!" '返回"Hello,world!" Mystr=11&22 '返回"1122"

MyStr=11+22 ‘返回33

3.4運算符和表達式3.4.4邏輯運算符邏輯運算符用來表示邏輯運算,如表所示。

表3.5邏輯運算符

3.4.5賦值運算符

賦值運算符用于對變量進行賦值,表列出賦值運算符。

表3.6賦值運算符

3.4運算符和表達式 例如:

DimXAsInterger DimSAsString="He" X=10 '將10賦給變量X X+=10 'X=X+10 X\=2 'X=X\2 S&="llo" ‘ S值為"Hello“3.4.6運算符的優(yōu)先級運算符的優(yōu)先順序如圖3.1所示。 圖3.1運算符的優(yōu)先級

3.5流程控制

3.5.1分支結構

1.If語句

(1)If…Then…Else語句 (2)If語句的嵌套

If條件表達式

Then If

表達式1Then

語句塊1 語句塊1

[Else ElseIf表達式2Then

語句塊2]

語句塊2

……

ElseIf表達式nThen

語句塊n Else

語句塊n+1

EndIf【例3.1】寫一個程序,判斷所輸入年份是否是閏年。閏年的條件

(1)

能被4整除,但不能被100整除的年份是閏年;

(2)

能被100整除,又能被400整除的年份是閏年。

在VS.NET中設計該程序的步驟是:

(1)

創(chuàng)建項目WebExamp3_1,將初始頁面文件名由WebForm1.aspx改為Main3_1.aspx。

(2)設計Main3_1.aspx的界面,所包含的控件及屬性列于表中。3.5流程控制

(3) 雙擊WebExamp3_1.aspx界面上的BtnExe按鈕,進入程序編輯窗口,在BtnExe_Click()事件 處理中輸入以下程序代碼:

PrivateSubBtnExe_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesBtnExe.Click DimLeapAsBoolean=False '閏年標志

IfTxtYear.Text=""Then '判斷用戶是否輸入年份值

LblCaution.Text="年份值不能為空,請輸入!"

Else DimYearAsInteger=CInt(TxtYear.Text) '將串值轉換為整數(shù)

IfCInt(Year)<0Then LblCaution.Text="年份值不能為負,請重新輸入!"

Else IfYearMod4=0Then IfYearMod100=0Then

3.5流程控制

IfYearMod400=0Then 'Year既能被100整除又能被400整除

Leap=TrueEndIfElse Leap=True'Year能被4整除但不能被100整除

EndIfEndIfEndIfEndIfIfLeapThen LblCaution.Text=TxtYear.Text&"是閏年!"

Else LblCaution.Text=TxtYear.Text&"不是閏年!"

EndIfEndSubBtnAgain_Click()事件處理的程序代碼:

PrivateSubBtnAgain_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesBtnAgain.Click TxtYear.Text="" '清空年份值

EndSub(4)編譯程序。選擇主選單的“生成”“生成解決方案”。3.5流程控制

(5)運行程序,結果如圖所示。

2.Select…Case語句 語法:

SelectCase變量|表達式

Case值1 語句塊1

Case值2 語句塊2 ……3.5流程控制

Case

語句塊n [CaseElse

語句塊n+1] EndSelect

【例3.2】寫一個程序,根據(jù)輸入的整數(shù)(1—7)輸出對應星期幾的英文單詞。

(1)創(chuàng)建項目WebExamp3_2,將初始頁面文件名由WebForm1.aspx改為Main3_2.aspx。 (2)設計Main3_2.aspx的界面。Main3_2.aspx的主界面如圖3.5所示

3.5流程控制

(3)在BtnExe_Click()事件處理中輸入以下程序代碼:

PrivateSubBtnExe_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesBtnExe.Click IfTxtDay.Text=""Then LblCaution.Text="您必須輸入一個1--7之間的整數(shù)!"

Else SelectCaseCInt(TxtDay.Text) Case1 LblCaution.Text="Monday" Case2 LblCaution.Text="Tuesday" Case3 LblCaution.Text="Wednsday" Case4 LblCaution.Text="Thursday“ Case5 LblCaution.Text="Friday" Case6 LblCaution.Text="Saturday" Case7 LblCaution.Text="Sunday" CaseElse LblCaution.Text="您的輸入有誤,必須輸入一個1--7之間的整數(shù)!"

EndSelect EndIf EndSub3.5流程控制 (4) 編譯程序。選擇主選單的“生成”“生成解決方案”。 (5) 運行程序,結果如圖所示。3.5.2循環(huán)結構

循環(huán)是用于重復執(zhí)行某些操作的結構。

1.For…Next語句

語法:

For循環(huán)變量=初值to終值[Step步長] 語句塊 [ExitFor] [語句塊]

Next[循環(huán)變量]

For..Next語句的執(zhí)行流程如右圖所示。 例如,下面的程序使計算機的揚聲器響3下。

Fori=1To3 Beep

Nexti

其中i為循環(huán)變量,用作For…Next循環(huán)中的循環(huán)計數(shù)器。3.5流程控制

2.ForEach…In…Next

語法:

ForEach表達式In

語句塊 [ExitFor] [語句塊]

Next

例如:

Dimscore()AsInteger={80,90,100,89,98}'定義整型數(shù)組Score并賦初值

DimmarkAsInteger,sumAsInteger=0 FormarkInscore '求數(shù)組Score()各元素之和

sum+=mark Next

上述程序代碼求出score()數(shù)組各元素之和。

3、Do…loop

Do…Loop語句有兩種格式 語法:Do{While/Until}條件表達式

語句塊[ExitDo]

語句塊Loop 'Do…Loop語句格式一3.5流程控制

Do

語句塊[ExitDo]

語句塊

Loop{While/Until}'Do…Loop語句格式二Do…loop的執(zhí)行流程如圖3.6所示【例3.3】 猜數(shù)游戲。給定一個數(shù)字(本例為88),由戶來 猜。用戶在文本框中輸入數(shù)字,點擊“猜對了 嗎?”按鈕。若猜中,給出成功提示;若用戶 不想繼續(xù)猜測,則點擊“不猜了”按鈕。 設計步驟如下: (1) 創(chuàng)建項目WebExamp3_3,將初始頁面文件名由圖3.7Do…Loop循環(huán)結構流程圖

WebForm1.aspx改為Main3_3.aspx。 (2) 設計Main3_3.aspx的界面。Main3_3.aspx的主界面如下圖3.8所示

3.5流程控制 (3)

雙擊WebExamp3_3.aspx界面上的BtnAns按鈕,進入程序編輯窗口,在BtnAns_Click()

事件處理中輸入以下程序代碼:

PrivateSubBtnAns_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles Button1.Click DoWhileCInt(TxtAns.Text)<>88 IfTxtAns.Text=""Then Response.Redirect("Main3_3.aspx") Else IfCInt(TxtAns.Text)<88Then Response.Redirect("Main3_3.aspx") Else IfCInt(TxtAns.Text)>88Then Response.Redirect("Main3_3.aspx") EndIf EndIf EndIf Loop LblRes.Text="恭喜您,猜對了!"

EndSub

3.5流程控制

雙擊WebExamp3_3.aspx界面上的BtnCancel按鈕,進入程序編輯窗口,在BtnCancel_Click()

事件處理中輸入以下程序代碼:

PrivateSubBtnCancel_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesBtnCancel.Click TxtAns.ReadOnly=True EndSub (4) 編譯程序。選擇主選單的“生成”“生成解決方案”。 (5) 運行程序,結果如圖3.8所示。 4、While

語法:

While條件表達式

[語句塊] [ExitWhile] [語句塊]

EndWhile

其中,Exitwhile為跳出循環(huán)體。

3.6數(shù)組

3.6.1數(shù)組的聲明及使用

語法:

Dim數(shù)組名([表達式1[,表達式2…]])[As數(shù)據(jù)類型] 例如:

Dimarr(10)AsInteger '聲明下標從0到10的一維數(shù)組,共有11個元素

Dimarr(5,4)AsString '聲明6行5列的二維數(shù)組,共有30個元素

可以在聲明數(shù)組的同時進行初始化。例如:

Dimarr(4)AsInteger={0,1,2,3,4}

對數(shù)組中元素的引用格式為:數(shù)組名(下標1,下標2,…)。例如:

arr(0)=5 '將5賦給數(shù)組的第一個元素

i=arr(3) '將數(shù)組的第4個元素賦給i

以下代碼利用循環(huán)查找符合指定條件的值:

Fori=0To4 Ifarr(i)>10Then ExitFor Endif Next

3.6數(shù)組3.6.2動態(tài)數(shù)組

動態(tài)數(shù)組的優(yōu)點是可以根據(jù)用戶需要,有效地利用存儲空間。

例如:

Dimarr()AsInteger DimiAsInteger …… ReDimarr(i) Fori=0To3

arr(i)=0 Next

注意:

(1)靜態(tài)數(shù)組聲明中的下標只能是常量,而動態(tài)數(shù)組ReDim語句中的下標可以是常量, 也可以是有了確定值的變量。 (2)在過程中可多次使用ReDim來改變數(shù)組的大小,也可以改變數(shù)組的維數(shù)。 3.6.3與數(shù)組相關的系統(tǒng)函數(shù)

VB.NET提供了以下與數(shù)組相關的函數(shù)

1.IsArray(varName) 2.LBound(arrName,arrRank) 3.UBound(arrName,arrRank)3.7過程

3.7.1Sub子程序

語法:

[Private|Public]Sub子程序名(參數(shù)表) 語句塊

[ExitSub|Return]

語句塊

EndSub

其中:

l

SubEndSub是子程序的開始和結束標志。

l

參數(shù)表是調用該子程序時需進行傳遞的參數(shù)說明,每個參數(shù)的格式說明為:[{ByVal|ByRef}][ParamArray]參數(shù)名[()]As參數(shù)類型[=默認值]

l

參數(shù)表中可有多個參數(shù),以逗號隔開。

l子程序名與變量命名規(guī)則相同。

l

Public|Private說明了子程序的訪問控制類型,默認為Public。

lExitSub/Return允許中途強制退出子程序。

例如,以下Add子程序求出兩個參數(shù)之和并輸出:

SubAdd(ByValaAsInteger,ByValbAsInteger) DimcAsInteger c=a+b Response.Write("c="&c) EndSub

3.7過程3.7.2函數(shù)

語法:

[Private|Public]Function函數(shù)過程名(參數(shù)表)[As數(shù)據(jù)類型]

語句塊

函數(shù)名=返回值[ExitFunction][語句塊]

EndFunction

函數(shù)定義的語法格式與Sub子程序基本相似,有三點不同:

(1)

函數(shù)定義的開始和結束標志分別是Function和EndFunction; (2)

函數(shù)定義頭部有“As數(shù)據(jù)類型”部分,用于說明函數(shù)返回值的類型; (3)

函數(shù)中需要有返回函數(shù)值的語句,返回函數(shù)值語句有以下兩種形式

1.

函數(shù)名=表達式;

2.

Return表達式3.7.3過程的調用

1. 調用Sub子程序 調用Sub子程序有兩種格式,使用Call或直接通過子程序名進行調用。 語法:

[Call]子程序名[(參數(shù)表)]3.7過程

2.調用函數(shù)

函數(shù)的調用格式與Sub子程序相同,即在函數(shù)名之后加上實在參數(shù)表。3.7.4參數(shù)傳遞 1.按值傳遞參數(shù)

用“ByVal”關鍵字指出參數(shù)是按值來傳遞的。例如:

FunctionInc(ByValiAsInteger) i=i+1 EndFunction SubCallInc() DimXAsInteger=10 Response.Write("X="&X) Inc(X) Response.Write("X="&X) EndSub CallInc過程調用Inc函數(shù),將實參X的值(10)傳遞給形參變量i,函數(shù)Inc()將i增1,但這個 改變并不影響實參變量X的值,因此CallInc兩次輸出的X均為10。

注意:“ByVal”關鍵字也可以省略。

3.7過程

2.按地址傳遞參數(shù)

用“ByRef”關鍵字指出參數(shù)是按地址來傳遞的,按地址傳遞的效率比較高?!纠?.4】將兩個變量的值進行交換。本例設計一個Swap(X,Y)過程,將X和Y對應的實參值交換。

(1)創(chuàng)建項目WebExamp3_4,將初始頁面文件名由WebForm1.aspx改為Main3_3.aspx。 (2)設計Main3_4.aspx的界面。Main3_4.aspx的主界面如圖所示

(3)

Swap()子程序的代碼:

SubSwap(ByRefX,ByRefY) DimTempAsInteger Temp=X X=Y Y=Temp EndSub

BtnSwap_Click()事件處理中輸入以下程序代碼:

PrivateSubBtnSwap_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles BtnSwap.Click DimAAsInteger,BAsInteger A=Val(TxtA1.Text) B=Val(TxtB1.Text) Swap(A,B)

3.7過程

TxtA2.Text=A TxtB2.Text=B EndSub

(4) 編譯程序。選擇主選單的“生成”“生成解決方案”。 (5) 運行程序。運行界面如左圖所示,點擊“交換“按鈕后的結果如右圖所示。

運行界面 運行結果 3. 使用可選參數(shù)

參數(shù)表中含有“Optional”關鍵字的參數(shù)為可選的。 下面的例子給出了帶有可選參數(shù)的過程的定義:

3.7過程

SubABC(OptionalByValMyCountryAsString="China") ……‘過程體語句

EndSub

4. 數(shù)組參數(shù)

在定義過程時,可用數(shù)組作為參數(shù)。 語法: 形參數(shù)組名()[As數(shù)據(jù)類型]

其中,數(shù)據(jù)類型為形參數(shù)組的元素類型。形參數(shù)組對應的實參數(shù)組必須也是數(shù)組, 并且數(shù)據(jù)類型與形參數(shù)組元素類型一致。

例如,以下函數(shù)求數(shù)組各元素之和:

FunctionSumArray(A()AsInteger,nAsInteger)AsInteger DimiAsInteger,SAsInteger=0 Fori=0Ton S+=A(i) Next EndFunction

3.8類和對象基本概念

3.8.1類和對象

1. 類 類是具有相同屬性和動作的事物的抽象,它是面向對象編程的最基本和最核心的概念。 語法:

Class類名

類成員的聲明

EndClass

類的成員包括屬性(又稱為域)和方法。以下是一個類Employee的定義:

ClassEmployee DimsalaryAsDecimal=40000 DimyearlyBonusAsDecimal=4000 PublicSubPrintSalary() System.Console.Write(salary)'printthesalarytotheConsole EndSub EndClass

2. 對象

類是創(chuàng)建對象的模板,對象是類的實例。 在VB.NET中使用New語句來創(chuàng)建對象。

溫馨提示

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

評論

0/150

提交評論