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

下載本文檔

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

文檔簡介

1、第二章第二章 Visual Basic.NET語法基礎語法基礎 本章主要介紹以下內容:本章主要介紹以下內容:l l Visual Basic.NET數據類型數據類型 l l 變量與常量變量與常量 l l運算符與表達式運算符與表達式 l l三種基本語法結構三種基本語法結構 l l數組數組 l l 過程與函數過程與函數l l 程序調試程序調試 l l 作業作業 2.5 2.5 數組數組 在實際應用中,常常需要處理相同類型的一批在實際應用中,常常需要處理相同類型的一批數據。數據。 例如,為了排列例如,為了排列200個學生的成績,可以用個學生的成績,可以用S(1),),S(2),),S(100)來分別

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

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

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

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

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

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

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

9、賦值的各元素賦值Nexti輸出數組輸出數組arr的各元素值的各元素值Fori=0Toarr.GetUpperBound(0)Console.WriteLine(arr(&i&)=&arr(i)Nexti聲明一維數組聲明一維數組Emp為為Object型型,包含包含2個下標變量個下標變量DimEmp(1)AsObject注意注意Emp(0)和和Emp(1)分別存放了類型不同的數據分別存放了類型不同的數據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二維數組二維數組t【案例【案例2-11】 多維數組應用舉例。多維數組應用舉例。打開記事本編輯下列代碼并保存,使用控制臺工作界面編譯并運行程序。打開記事本編輯下列代碼并保存,使用控制臺工作界面編譯并運行程序。IMPORTS SYSTEMIMPORTS SYSTEMMod

11、ule TestModule Test Sub Main() Sub Main() 聲明二維數組聲明二維數組arrarr為為IntegerInteger型型, ,包含包含1212個下標變量個下標變量Dim arr(2,3) As Integer Dim arr(2,3) As Integer Dim i ,J As Integer Dim i ,J As Integer 使用雙重循環為二維數組使用雙重循環為二維數組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 輸出數組輸出數組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三、動態數組三、動態數組動態數組是一個比較特殊的數組,當用戶不能預見要處理數據的動態數組是一個比較特殊的數組,當用戶不能預見要處理數據的個數或不便給出數組的上標時可以使用動態數組,動態數組中的元素個數或不便給出數組的上標時可以使用動

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

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

16、又不丟失數組語句改變數組大小又不丟失數組中原有的數據,可使用具有中原有的數據,可使用具有Preserve關鍵字的關鍵字的Redim語句。語句。在多維數組中,當使用在多維數組中,當使用 Preserve時只能更改數組的最后一時只能更改數組的最后一維。如果要更改其他維,將會出現運行時錯誤。維。如果要更改其他維,將會出現運行時錯誤。(5)可使用可使用Redim語句直接定義數組。語句直接定義數組。Preserve參數:保留數組中原來的數據參數:保留數組中原來的數據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】動態數組的聲明方法舉例。】動態數組的聲明方法舉例。打開記事本

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

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

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

21、IM語句指定動態數組的大小語句指定動態數組的大小 REDIM ARR(1)REDIM ARR(1) 為動態數組為動態數組arrarr賦值賦值 arr(0)=arr(0)=機械工業出版社機械工業出版社 arr(1)=arr(1)=高教出版社高教出版社 顯示動態數組顯示動態數組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語句重新指定動態數組的大小語句重新指定動態數組的大小, ,注意使用了注意使用了PreservePreserve參數參數 REDIM Preserve ARR(3) REDIM Preserve ARR(3) 可去掉可去掉PreservePreserve參數后運行參數后運行, ,觀察結果觀察結果 為動態數組為動態數組arrarr追加賦值追加賦值 arr(2)=arr(2)=科學出版社科學出版社 arr(3)=arr(3)=希望出版社希望出版社 Console.WriteLine(Consol

23、e.WriteLine(執行執行REDIM Preserve ARR(3)REDIM Preserve ARR(3)命令命令, ,并追加賦值后并追加賦值后) 顯示動態數組顯示動態數組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 循環語句在數組中的應用循環語句在數組中的應用 對于數組中的每個元素,執行一次循環,每次循環時,對于數組中的每個元素,執行一次循環,每次循環時,變量名所指定的變量取數組中的一個元素值變量名所指定的變量取數組中的一個元素值格式:格式:ForEach變量名變量名In數組名數組名 循環體循環體ExitForNext變量名變量名DimIAsIntegerDimintSumAsIntegerDima(10)AsIntegerForI=0to10a(i)=I*3NextForEachIinaintSum+=ITextBox1.Text+=I.ToString+intSum.ToString+vbCrLfNextt【案例【

溫馨提示

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

評論

0/150

提交評論