靜態數組的聲明與例子練習

來源:互聯網
上載者:User

數組的定義與聲明

在使用數組之前,一般要聲明數組,當然也可以採用隱式聲明的方法。聲明數組的方法與聲明各種類型的變數一樣,可以用Dim,Private,Public或Static來聲明,只不過聲明數組時需要設定數組的上下界,也就是數組下標索引的起始值和中止值。

(1)靜態數組:

其聲明的文法如下:

    Dim│Private│Public│Static 
數組名([下標下界 To]下標上界)
[As 資料類型]

說明:

數組名後是圓擴弧“( 
)”擴起來,不能採用其它符號。

如果不指明數組的下標下界,系統預設為是0,數組的下標上界,使用長整型(Long)資料,在VB中規定上界不得超過2,147,483,647。

下標的下界不能大於下標的上界;

可以用變數名或常數名(以及實數)作為下標邊界,當下標的邊界是常數名時,數組的大小固定(靜態數組),當下標的邊界是變數名時,數組的大小可作動態定義(動態數組)。


Dim A(10) As Integer
'表示數組名為A,預設下標界為0,上界為10的有11個整型元素的數組,即:從A(0),A(1)到A(10);

Dim B(1
To 20) As Integer'表示數組名為B,下標下界為1,下標上界為20的,有20個整型的元素;

Dim BirthDay (1 To 10) As Date
'表示BirthDay是一個索引從1到10的Date型數組。

Dim DayArray (50)'表示變數是一個有51個索引元素的Variant數組;

Public Class (10) As String
'聲明一個長度為11的全域整型數組Class;

Dim Matrix(3,4) As Integer
'表示變數是一個二維整型數組;

Dim MyMatrix(1 To 5,4 To 9, 3 To5) As Double
'表示變數是一個顯示指定了上下界的三維double數組;

為數組賦初值可以採用迴圈語句。如:

    Dim I As Integer
            For I=0 To 11
        C(I)=I     
'C(0)、C(1)、……C(11)
    Next I

例:下面的練習使用一個名為Temperatures的一維公用數組來記錄一周七天的日最高氣溫。

介面:

在表單上添加3個命令按鈕,表單的AutoRedraw屬性設定為True。——當使用Print方法在表單中顯示資訊時,始終將表單的AutoRedraw屬性設定為True。這樣,當表單被另一個視窗遮蓋然後該表單重新顯示時,VisualBasic將自動重新繪製螢幕。

註:沒有使用強制聲明“Option Explicit”語句。

代碼:

Dim Temperatures(6) As Variant

Private Sub Command1_Click()
    Cls
    Prompt$ = "Enter the high temperature."
    For i% = 0 To 6
        Title$ = "Day" & i%
        Temperatures(i%) = InputBox(Prompt$, Title$)
    Next i%
End Sub

Private Sub Command2_Click()
    Cls
    Print "High Temperatures for the week:"
    Print
    For i% = 0 To 6
        Print "Day "; i%, Temperatures(i%)
        Total! = Total! + Temperatures(i%)
    Next i%
    Print
    Print "Average high temperature: "; Total! / 7
End Sub

Private Sub Command3_Click()
    End
End Sub

說明:該程式是示範如何在程式中使用數組存放和處理一組相關數值。通過使用InputBox函數和For...Next迴圈,氣溫值被賦值給數組。迴圈中迴圈計數器被用來索引數組中的每個元素。數組內容通過使用For...Next迴圈和Print(列印)方法顯示在表單中,接著平均最高氣溫就被計算並顯示出來了。

也可利用For迴圈嵌套有效地處理多維陣列。例:

    Dim i As Integer,j As Integer 
'設定計數器
    Dim class(14) As String  '定義班級名稱數組
    Dim studentname(14,35) As String  '定義學生姓名數組
    ……  
'為班級數組賦值
    ……   '為學生數組賦值
    For i=0 To 14
            For j=0 To 35 
                If studentname(i,j)="張三"
Then
                        MsgBox "張三在"十class(i)
                    End If
                Next j
    Next i

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.