第二章(3)數(shù)組_第1頁
第二章(3)數(shù)組_第2頁
第二章(3)數(shù)組_第3頁
第二章(3)數(shù)組_第4頁
第二章(3)數(shù)組_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第二章第二章 Visual Basic.NET語法基礎(chǔ)語法基礎(chǔ) 本章主要介紹以下內(nèi)容:本章主要介紹以下內(nèi)容:l l Visual Basic.NET數(shù)據(jù)類型數(shù)據(jù)類型 l l 變量與常量變量與常量 l l運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式 l l三種基本語法結(jié)構(gòu)三種基本語法結(jié)構(gòu) l l數(shù)組數(shù)組 l l 過程與函數(shù)過程與函數(shù)l l 程序調(diào)試程序調(diào)試 l l 作業(yè)作業(yè) 2.5 2.5 數(shù)組數(shù)組 在實(shí)際應(yīng)用中,常常需要處理相同類型的一批在實(shí)際應(yīng)用中,常常需要處理相同類型的一批數(shù)據(jù)。數(shù)據(jù)。 例如,為了排列例如,為了排列200個(gè)學(xué)生的成績(jī),可以用個(gè)學(xué)生的成績(jī),可以用S(1),),S(2),),S(100)來分別

2、存放每個(gè)學(xué)來分別存放每個(gè)學(xué)生的成績(jī),其中生的成績(jī),其中S(1)存放第一個(gè)學(xué)生的成績(jī)存放第一個(gè)學(xué)生的成績(jī),S(2)存放第二個(gè)學(xué)生的成績(jī)存放第二個(gè)學(xué)生的成績(jī) 在在VB.NET中,把一組中,把一組具有相同名字、不同下具有相同名字、不同下標(biāo)的變量稱為數(shù)組標(biāo)的變量稱為數(shù)組 其一般形式為其一般形式為S (n),其中其中S稱為數(shù)組名稱為數(shù)組名,n是下是下標(biāo)。標(biāo)。2.5 2.5 數(shù)組數(shù)組 一個(gè)數(shù)組可以含有若干個(gè)一個(gè)數(shù)組可以含有若干個(gè)下標(biāo)變量下標(biāo)變量( (或稱數(shù)組或稱數(shù)組元素元素) )。下標(biāo)用來指出某個(gè)數(shù)組元素在數(shù)組中的位。下標(biāo)用來指出某個(gè)數(shù)組元素在數(shù)組中的位置。置。 一個(gè)數(shù)組如果只用一個(gè)下標(biāo)就能確定數(shù)組元一個(gè)

3、數(shù)組如果只用一個(gè)下標(biāo)就能確定數(shù)組元素在數(shù)組中的位置,則稱為素在數(shù)組中的位置,則稱為一維數(shù)組一維數(shù)組。 也可以說,由具有一個(gè)下標(biāo)的下標(biāo)變量所組也可以說,由具有一個(gè)下標(biāo)的下標(biāo)變量所組成的數(shù)組稱為一維數(shù)組,而具有兩個(gè)或多個(gè)下標(biāo)成的數(shù)組稱為一維數(shù)組,而具有兩個(gè)或多個(gè)下標(biāo)的下標(biāo)變量所組成的數(shù)組稱為的下標(biāo)變量所組成的數(shù)組稱為二維數(shù)組或多維數(shù)二維數(shù)組或多維數(shù)組組 一維數(shù)組一維數(shù)組聲明數(shù)組的格式為:聲明數(shù)組的格式為:Dim數(shù)組名數(shù)組名(最大下標(biāo)最大下標(biāo))As類型名類型名(1)數(shù)組的命名與簡(jiǎn)單變量的命名規(guī)則相同。數(shù)組的命名與簡(jiǎn)單變量的命名規(guī)則相同。(2)數(shù)值數(shù)組中的元素若為基本數(shù)組類型,則全部元素都自動(dòng)數(shù)值數(shù)組

4、中的元素若為基本數(shù)組類型,則全部元素都自動(dòng)初始化為初始化為0,字符串?dāng)?shù)組或字符數(shù)組中全部元素都自動(dòng)初始化,字符串?dāng)?shù)組或字符數(shù)組中全部元素都自動(dòng)初始化為為Nothing。(3)下標(biāo)必須用括號(hào)括起來,下標(biāo)可以是常數(shù)、變量或表達(dá)式。下標(biāo)必須用括號(hào)括起來,下標(biāo)可以是常數(shù)、變量或表達(dá)式。(4)下標(biāo)必須是整數(shù),否則將被自動(dòng)取整(舍去小數(shù)部分)下標(biāo)必須是整數(shù),否則將被自動(dòng)取整(舍去小數(shù)部分) 聲明一維數(shù)組時(shí)要指定聲明一維數(shù)組時(shí)要指定: 數(shù)組的名字?jǐn)?shù)組的名字 大小大小(元素的個(gè)數(shù)元素的個(gè)數(shù)) 元素?cái)?shù)據(jù)類型元素?cái)?shù)據(jù)類型 訪問級(jí)別訪問級(jí)別(如果需要如果需要)指定數(shù)組的名字指定數(shù)組的名字指定數(shù)組元素指定數(shù)組元素的元

5、素?cái)?shù)據(jù)類型的元素?cái)?shù)據(jù)類型 指定數(shù)組的訪問級(jí)別指定數(shù)組的訪問級(jí)別AccessModifier ArrayName(Size) As Type指定數(shù)組的大小指定數(shù)組的大小 數(shù)組中所有元素是同一數(shù)據(jù)類型數(shù)組中所有元素是同一數(shù)據(jù)類型每個(gè)元素都可以通過索引來訪問每個(gè)元素都可以通過索引來訪問示例示例聲明一個(gè)有聲明一個(gè)有7個(gè)元素的數(shù)組個(gè)元素的數(shù)組:訪問數(shù)組的第三個(gè)元素訪問數(shù)組的第三個(gè)元素:(0)(1)(2)(3)(4)(5)(6)索引索引 0索引索引 6Dim countHouses(6) As IntegerTextBox1.Text = CStr(countHouses(2)例:表示例:表示10個(gè)學(xué)生的

6、成績(jī),聲明具有個(gè)學(xué)生的成績(jī),聲明具有10個(gè)元素的數(shù)組個(gè)元素的數(shù)組intScoreDimintScore(9)AsInteger數(shù)組名為:數(shù)組名為:intScore每個(gè)元素為整型數(shù)每個(gè)元素為整型數(shù)下標(biāo)范圍是下標(biāo)范圍是09各元素分別為各元素分別為intscore(0),intscore(9)系統(tǒng)必須為該數(shù)組的系統(tǒng)必須為該數(shù)組的10個(gè)元素分配存儲(chǔ)空間個(gè)元素分配存儲(chǔ)空間Array.GetUpperBound方法方法-獲取獲取Array的指定維度的上限的指定維度的上限PublicFunctionGetUpperBound(ByValdimensionAsInteger)AsInteger參數(shù)參數(shù)dime

7、nsion:Array的從零開始的維度,其上限需要確定。的從零開始的維度,其上限需要確定。返回值:返回值:Array中的指定維度的上限中的指定維度的上限例:例:DimintScore(9)AsIntegerDimcountAsIntegerCount=intScore.GetUpperBound(0)Console.WriteLine(count)t【案例【案例2-10】一維數(shù)組應(yīng)用舉例。】一維數(shù)組應(yīng)用舉例。1 1、聲明數(shù)組、聲明數(shù)組2 2、使用、使用forfor循環(huán)給數(shù)組元素賦值循環(huán)給數(shù)組元素賦值3 3、將數(shù)組元素中的數(shù)值顯示出來、將數(shù)組元素中的數(shù)值顯示出來t 【案例【案例2-10】一維數(shù)組

8、應(yīng)用舉例。】一維數(shù)組應(yīng)用舉例。打開記事本編輯下列代碼并保存,使用控制臺(tái)工作界面編譯并運(yùn)行程序。打開記事本編輯下列代碼并保存,使用控制臺(tái)工作界面編譯并運(yùn)行程序。IMPORTSSYSTEMModuleTestSubMain() 聲明一維數(shù)組聲明一維數(shù)組arr為為Integer型型,包含包含4個(gè)下標(biāo)變量個(gè)下標(biāo)變量Dimarr(3)AsIntegerDimiAsInteger使用數(shù)組的使用數(shù)組的GetUpperBound方法獲取數(shù)組第一維的最大下標(biāo)值方法獲取數(shù)組第一維的最大下標(biāo)值,做循環(huán)終值做循環(huán)終值Fori=0Toarr.GetUpperBound(0)arr(i)=i*i為數(shù)組為數(shù)組arr的各元素

9、賦值的各元素賦值Nexti輸出數(shù)組輸出數(shù)組arr的各元素值的各元素值Fori=0Toarr.GetUpperBound(0)Console.WriteLine(arr(&i&)=&arr(i)Nexti聲明一維數(shù)組聲明一維數(shù)組Emp為為Object型型,包含包含2個(gè)下標(biāo)變量個(gè)下標(biāo)變量DimEmp(1)AsObject注意注意Emp(0)和和Emp(1)分別存放了類型不同的數(shù)據(jù)分別存放了類型不同的數(shù)據(jù)Emp(0)=8518Emp(1)=田谷雨田谷雨Fori=0To1Console.WriteLine(Emp(&i&)=&Emp(i)NextiEnd

10、SubEndModule(0,0)(0,1)(0,2)(1,0)(1,1)(1,2)(2,0)(2,1)(2,2)(3,0)(3,1)(3,2)Dimarr(3,2)asintegerarr(0,0)=12arr(0,1)=66fori=0to3forj=0to2arr(i,J)=i+jnextjnexti012123234345二維數(shù)組二維數(shù)組t【案例【案例2-11】 多維數(shù)組應(yīng)用舉例。多維數(shù)組應(yīng)用舉例。打開記事本編輯下列代碼并保存,使用控制臺(tái)工作界面編譯并運(yùn)行程序。打開記事本編輯下列代碼并保存,使用控制臺(tái)工作界面編譯并運(yùn)行程序。IMPORTS SYSTEMIMPORTS SYSTEMMod

11、ule TestModule Test Sub Main() Sub Main() 聲明二維數(shù)組聲明二維數(shù)組arrarr為為IntegerInteger型型, ,包含包含1212個(gè)下標(biāo)變量個(gè)下標(biāo)變量Dim arr(2,3) As Integer Dim arr(2,3) As Integer Dim i ,J As Integer Dim i ,J As Integer 使用雙重循環(huán)為二維數(shù)組使用雙重循環(huán)為二維數(shù)組arrarr各元素賦值各元素賦值 For i = 0 To arr.GetUpperBound(0) For i = 0 To arr.GetUpperBound(0) FOR J=

12、0 TO arr.GetUpperBound(1) FOR J=0 TO arr.GetUpperBound(1) arr(i,J) = i arr(i,J) = i * * J J NEXT J NEXT J Next i Next i 輸出數(shù)組輸出數(shù)組arrarr的各元素值的各元素值 For i = 0 To arr.GetUpperBound(0) For i = 0 To arr.GetUpperBound(0) FOR J=0 TO arr.GetUpperBound(1) FOR J=0 TO arr.GetUpperBound(1) Console.WriteLine(arr(

13、& i & , & J & ) = & arr(i,J) Console.WriteLine(arr( & i & , & J & ) = & arr(i,J) Next J Next J Next i Next i End Sub End SubEnd ModuleEnd Module三、動(dòng)態(tài)數(shù)組三、動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組是一個(gè)比較特殊的數(shù)組,當(dāng)用戶不能預(yù)見要處理數(shù)據(jù)的動(dòng)態(tài)數(shù)組是一個(gè)比較特殊的數(shù)組,當(dāng)用戶不能預(yù)見要處理數(shù)據(jù)的個(gè)數(shù)或不便給出數(shù)組的上標(biāo)時(shí)可以使用動(dòng)態(tài)數(shù)組,動(dòng)態(tài)數(shù)組中的元素個(gè)數(shù)或不便給出數(shù)組的上標(biāo)時(shí)可以使用動(dòng)

14、態(tài)數(shù)組,動(dòng)態(tài)數(shù)組中的元素個(gè)數(shù)是可變的。創(chuàng)建動(dòng)態(tài)數(shù)組個(gè)數(shù)是可變的。創(chuàng)建動(dòng)態(tài)數(shù)組兩個(gè)步驟:兩個(gè)步驟:1、聲明動(dòng)態(tài)數(shù)組、聲明動(dòng)態(tài)數(shù)組格式:格式:Public|Private|Dim|Static()As$聲明一維動(dòng)態(tài)數(shù)組的格式為:聲明一維動(dòng)態(tài)數(shù)組的格式為:Dim數(shù)組名數(shù)組名()As類型名類型名$聲明二維動(dòng)態(tài)數(shù)組的格式為:聲明二維動(dòng)態(tài)數(shù)組的格式為:Dim數(shù)組名數(shù)組名(,)As類型名類型名說明:說明:(1)聲明動(dòng)態(tài)數(shù)組和靜態(tài)數(shù)組的不同之處是不指定數(shù)組的下標(biāo)界限)聲明動(dòng)態(tài)數(shù)組和靜態(tài)數(shù)組的不同之處是不指定數(shù)組的下標(biāo)界限2、在使用動(dòng)態(tài)數(shù)組前,在使用動(dòng)態(tài)數(shù)組前,必須必須通過通過ReDim語句指定數(shù)組每維語句指定

15、數(shù)組每維下標(biāo)的上限,且可多次改變下標(biāo)的上限,且可多次改變格式:格式: RedimPreserve 數(shù)組名數(shù)組名(下標(biāo)下標(biāo)) As說明:說明:(1)Redim語句只能在過程中使用。語句只能在過程中使用。(2)可以用可以用Redim語句多次反復(fù)定義同一個(gè)數(shù)組,并改變語句多次反復(fù)定義同一個(gè)數(shù)組,并改變數(shù)組的下標(biāo),但不能用數(shù)組的下標(biāo),但不能用Redim語句改變數(shù)組的維數(shù)和數(shù)據(jù)語句改變數(shù)組的維數(shù)和數(shù)據(jù)類型。類型。(3)用用Redim語句重新定義一個(gè)數(shù)組的大小時(shí),數(shù)組中各語句重新定義一個(gè)數(shù)組的大小時(shí),數(shù)組中各元素原有的值將被清除。元素原有的值將被清除。 (4)如果希望用如果希望用Redim語句改變數(shù)組大小

16、又不丟失數(shù)組語句改變數(shù)組大小又不丟失數(shù)組中原有的數(shù)據(jù),可使用具有中原有的數(shù)據(jù),可使用具有Preserve關(guān)鍵字的關(guān)鍵字的Redim語句。語句。在多維數(shù)組中,當(dāng)使用在多維數(shù)組中,當(dāng)使用 Preserve時(shí)只能更改數(shù)組的最后一時(shí)只能更改數(shù)組的最后一維。如果要更改其他維,將會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。維。如果要更改其他維,將會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。(5)可使用可使用Redim語句直接定義數(shù)組。語句直接定義數(shù)組。Preserve參數(shù):保留數(shù)組中原來的數(shù)據(jù)參數(shù):保留數(shù)組中原來的數(shù)據(jù)DimstrNames()AsStringPrivateSubButton1_Click()ReDimstrNames(2):strName

17、s(0)=MicrosoftstrNames(1)=IBM“:strNames(2)=SUN“:DimiAsIntegerFori=0To2TxtOut.Text+=i.ToString+:+strNames(i)+vbCrLfNextReDimstrNames(3)TxtOut.Text+=-+vbCrLfstrNames(3)=HPFori=0To3TxtOut.Text+=i.ToString()+:+strNames(i)+vbCrLfNextEndSubReDimPreservestrNames(3)t【案例【案例2-12】動(dòng)態(tài)數(shù)組的聲明方法舉例。】動(dòng)態(tài)數(shù)組的聲明方法舉例。打開記事本

18、編輯下列代碼并保存,使用控制臺(tái)工作界面編譯并運(yùn)行程序。打開記事本編輯下列代碼并保存,使用控制臺(tái)工作界面編譯并運(yùn)行程序。ModuleTestSubMain()聲明一維數(shù)組聲明一維數(shù)組arr為為Integer型動(dòng)態(tài)數(shù)組型動(dòng)態(tài)數(shù)組Dimarr()AsInteger使用使用REDIM語句指定動(dòng)態(tài)數(shù)組的大小語句指定動(dòng)態(tài)數(shù)組的大小REDIMARR(3)輸出動(dòng)態(tài)數(shù)組輸出動(dòng)態(tài)數(shù)組arr的一維上界值的一維上界值Console.WriteLine(執(zhí)行執(zhí)行REDIMARR(3)命令后命令后,數(shù)組上界為數(shù)組上界為:_&arr.GetUpperBound(0)使用使用REDIM語句重新指定動(dòng)態(tài)數(shù)組的大小語句重

19、新指定動(dòng)態(tài)數(shù)組的大小REDIMARR(5)輸出動(dòng)態(tài)數(shù)組輸出動(dòng)態(tài)數(shù)組arr的一維上界值的一維上界值Console.WriteLine(執(zhí)行執(zhí)行REDIMARR(5)命令后命令后,數(shù)組上界為數(shù)組上界為:_&arr.GetUpperBound(0)使用使用REDIM語句重新指定動(dòng)態(tài)數(shù)組的大小語句重新指定動(dòng)態(tài)數(shù)組的大小REDIMARR(2)輸出動(dòng)態(tài)數(shù)組輸出動(dòng)態(tài)數(shù)組arr的一維上界值的一維上界值Console.WriteLine(執(zhí)行執(zhí)行REDIMARR(2)命令后命令后,數(shù)組上界為數(shù)組上界為:_&arr.GetUpperBound(0)EndSubEndModule【案例【案例2-13

20、】 PreservePreserve參數(shù)用法舉例。參數(shù)用法舉例。打開記事本編輯下列代碼并保存,使用控制臺(tái)工作界面編譯并運(yùn)行程序。打開記事本編輯下列代碼并保存,使用控制臺(tái)工作界面編譯并運(yùn)行程序。IMPORTS SYSTEMIMPORTS SYSTEMModule TestModule Test Sub Main() Sub Main() 聲明一維數(shù)組聲明一維數(shù)組arrarr為為STRINGSTRING型動(dòng)態(tài)數(shù)組型動(dòng)態(tài)數(shù)組 Dim arr( ) As STRING Dim arr( ) As STRING DIM I AS INTEGER DIM I AS INTEGER 使用使用REDIMRED

21、IM語句指定動(dòng)態(tài)數(shù)組的大小語句指定動(dòng)態(tài)數(shù)組的大小 REDIM ARR(1)REDIM ARR(1) 為動(dòng)態(tài)數(shù)組為動(dòng)態(tài)數(shù)組arrarr賦值賦值 arr(0)=arr(0)=機(jī)械工業(yè)出版社機(jī)械工業(yè)出版社 arr(1)=arr(1)=高教出版社高教出版社 顯示動(dòng)態(tài)數(shù)組顯示動(dòng)態(tài)數(shù)組arrarr各元素的值各元素的值 FOR I=0 TO ARR.Getupperbound(0)FOR I=0 TO ARR.Getupperbound(0) Console.WriteLine(arr( & i & ) = & arr(i) Console.WriteLine(arr( &

22、i & ) = & arr(i) NEXT I NEXT I 使用使用REDIMREDIM語句重新指定動(dòng)態(tài)數(shù)組的大小語句重新指定動(dòng)態(tài)數(shù)組的大小, ,注意使用了注意使用了PreservePreserve參數(shù)參數(shù) REDIM Preserve ARR(3) REDIM Preserve ARR(3) 可去掉可去掉PreservePreserve參數(shù)后運(yùn)行參數(shù)后運(yùn)行, ,觀察結(jié)果觀察結(jié)果 為動(dòng)態(tài)數(shù)組為動(dòng)態(tài)數(shù)組arrarr追加賦值追加賦值 arr(2)=arr(2)=科學(xué)出版社科學(xué)出版社 arr(3)=arr(3)=希望出版社希望出版社 Console.WriteLine(Consol

23、e.WriteLine(執(zhí)行執(zhí)行REDIM Preserve ARR(3)REDIM Preserve ARR(3)命令命令, ,并追加賦值后并追加賦值后) 顯示動(dòng)態(tài)數(shù)組顯示動(dòng)態(tài)數(shù)組arrarr各元素的值各元素的值 FOR I=0 TO ARR.Getupperbound(0)FOR I=0 TO ARR.Getupperbound(0) Console.WriteLine(arr( & i & ) = & arr(i) Console.WriteLine(arr( & i & ) = & arr(i) NEXT I NEXT I End Sub

24、 End SubEnd ModuleEnd Module四、四、ForEachNext 循環(huán)語句在數(shù)組中的應(yīng)用循環(huán)語句在數(shù)組中的應(yīng)用 對(duì)于數(shù)組中的每個(gè)元素,執(zhí)行一次循環(huán),每次循環(huán)時(shí),對(duì)于數(shù)組中的每個(gè)元素,執(zhí)行一次循環(huán),每次循環(huán)時(shí),變量名所指定的變量取數(shù)組中的一個(gè)元素值變量名所指定的變量取數(shù)組中的一個(gè)元素值格式:格式:ForEach變量名變量名In數(shù)組名數(shù)組名 循環(huán)體循環(huán)體ExitForNext變量名變量名DimIAsIntegerDimintSumAsIntegerDima(10)AsIntegerForI=0to10a(i)=I*3NextForEachIinaintSum+=ITextBox1.Text+=I.ToString+intSum.ToString+vbCrLfNextt【案例【

溫馨提示

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