ncre vb電子光盤課件第8章_第1頁
ncre vb電子光盤課件第8章_第2頁
ncre vb電子光盤課件第8章_第3頁
ncre vb電子光盤課件第8章_第4頁
ncre vb電子光盤課件第8章_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第8章數(shù)組

第8章數(shù)組除基本數(shù)據(jù)類型(字符串、整型、實(shí)型等)外,VisualBasic還提供了數(shù)組類型,利用數(shù)組,可以方便靈活地組織和使用數(shù)據(jù)。對(duì)于數(shù)組來說,不能用一個(gè)簡單變量名來訪問它的某個(gè)元素。數(shù)組是有序的數(shù)據(jù)的集合。在VisualBasic中,一個(gè)數(shù)組中的元素可以是相同類型的數(shù)據(jù),也可以是不同類型的數(shù)據(jù)。8.1數(shù)組的概念在VisualBasic中,把一組具有同一名字、不同下標(biāo)的下標(biāo)變量稱為數(shù)組,其一般形式為: S(8) 其中S稱為數(shù)組名,8是下標(biāo)。一個(gè)數(shù)組可以含有若干個(gè)下標(biāo)變量(或稱數(shù)組元素),下標(biāo)用來指出某個(gè)數(shù)組元素在數(shù)組中的位置。在VisualBasic中,使用下標(biāo)變量時(shí),必須把下標(biāo)放在一對(duì)緊跟在數(shù)組名之后的小括號(hào)中。如果只用一個(gè)下標(biāo)就能確定一個(gè)數(shù)組元素在數(shù)組中的位置,則稱為一維數(shù)組。也可以說,由具有一個(gè)下標(biāo)的下標(biāo)變量所組成的數(shù)組稱為一維數(shù)組,而由具有兩個(gè)或多個(gè)下標(biāo)的下標(biāo)變量所組成的數(shù)組稱為二維數(shù)組或多維數(shù)組。8.1.1數(shù)組的定義數(shù)組應(yīng)當(dāng)先定義后使用。在計(jì)算機(jī)中,數(shù)組占據(jù)一塊內(nèi)存區(qū)域,數(shù)組名是這個(gè)區(qū)域的名稱,區(qū)域的每個(gè)單元都有自己的地址,該地址用下標(biāo)表示。定義數(shù)組的目的就是通知計(jì)算機(jī)為其留出所需要的空間。VisualBasic中,有4個(gè)定義數(shù)組的語句,這4個(gè)語句格式相同,但適用范圍不同,其中:Dim用在窗體模塊或標(biāo)準(zhǔn)模塊中,定義窗體或標(biāo)準(zhǔn)模塊數(shù)組,也 可用于過程中ReDim用在過程中Static用在過程中Public用在標(biāo)準(zhǔn)模塊中,定義全局?jǐn)?shù)組8.1.1數(shù)組的定義下面以Dim語句為例說明數(shù)組定義的語句格式,當(dāng)用其他語句定義數(shù)組時(shí),格式相同。VisualBasic提供了兩種定義數(shù)組的格式。1.第一種格式第一種格式對(duì)于數(shù)組的每一維,只給出下標(biāo)的上界(即可以使用的下標(biāo)的最大值)。對(duì)于一維數(shù)組,格式為: Dim數(shù)組名(下標(biāo)上界)As類型名稱對(duì)于二維數(shù)組,格式為:

Dim數(shù)組名(第一維下標(biāo)上界,第二維下標(biāo)上界)As類型名稱8.1.1數(shù)組的定義例如:(1)語句DimArrayDemo(5)AsInteger定義了一個(gè)一維數(shù)組,該數(shù)組的名字為ArrayDemo,類型為整型,占據(jù)6個(gè)(0~5)整型變量的空間(12個(gè)字節(jié))。(2)語句DimTest(2,3)AsInteger定義了一個(gè)二維數(shù)組,名字為Test,類型為Integer,該數(shù)組有3行(0~2)4列(0~3),占據(jù)12(3×4)個(gè)整型變量的空間(24個(gè)字節(jié)):8.1.1數(shù)組的定義說明:(1)格式中的“數(shù)組名”與簡單變量相同,可以是任何合法的VisualBasic變量名?!癆s類型名稱”用來說明“數(shù)組”的類型,可以是Integer、Long、Single、Double、Currency、String等基本類型或用戶定義的類型,也可以是Variant類型。如果省略“As類型名稱”,則定義的數(shù)組為Variant類型。(2)數(shù)組必須先定義,后使用。BASIC的早期版本支持?jǐn)?shù)組的隱式定義,即如果一個(gè)數(shù)組未經(jīng)定義而直接使用,則該數(shù)組各維的默認(rèn)上界為10,下界為0或1。但在VisualBasic中,不允許使用隱式定義。(3)當(dāng)用Dim語句定義數(shù)組時(shí),該語句把數(shù)值數(shù)組中的全部元素都初始化為0,而把字符串?dāng)?shù)組中的全部元素都初始化為空字符串。對(duì)于用Dim語句定義的記錄變量中的元素以及定長字符串,也進(jìn)行類似的處理。8.1.1數(shù)組的定義(4)一般情況下,下標(biāo)的下界默認(rèn)為0。如果希望下標(biāo)從1開始,可以通過OptionBase語句來設(shè)置,其格式為:

OptionBasen

格式中的n為數(shù)組下標(biāo)的下界,它只能是0或1。OptionBase語句只能出現(xiàn)在窗體層或模塊層,不能出現(xiàn)在過程中,并且必須放在數(shù)組定義之前。此外,如果定義的是多維數(shù)組,則下標(biāo)的默認(rèn)下界對(duì)每一維都有效。(5)要注意區(qū)分“可以使用的最大下標(biāo)值”和“元素個(gè)數(shù)”?!翱梢允褂玫淖畲笙聵?biāo)值”指的是下標(biāo)值的上界,而“元素個(gè)數(shù)”則是指數(shù)組中成員的個(gè)數(shù)。 例如,在DimArr(5)中,數(shù)組可以使用的最大下標(biāo)值是5,如果下標(biāo)值從0開始,則數(shù)組中的元素為:Arr(0)、Arr(1)、Arr(2)、Arr(3)、Arr(4)、Arr(5),共有6個(gè)元素。如果下標(biāo)值從1開始,則元素的個(gè)數(shù)與最大下標(biāo)值相同。8.1.1數(shù)組的定義

2.第二種格式格式:

Dim數(shù)組名([下界To]上界[,[下界To]上界]...)

例如:DimArr(-2To3)定義了一個(gè)一維數(shù)組Arr,其下標(biāo)的下界為-2,上界為3,該數(shù)組可以使用的下標(biāo)值在-2到3之間,數(shù)組元素為Arr(-2)、Arr(-1)、Arr(0)、Arr(1)、Arr(2)、Arr(3),共有6個(gè)元素。用第一種格式定義的數(shù)組,其下標(biāo)的下界只能是0或1,而使用第二種格式,則可以根據(jù)需要指定數(shù)組下標(biāo)的下界。沒有To,數(shù)組的下標(biāo)的下界只能是0或1,而使用To后,下標(biāo)的范圍可以是-32768~32767。在某些情況下,使用To能更好地反映對(duì)象的特性,例如: DimPopulation(1949To2000) 定義了一個(gè)人口(Population)數(shù)組,可以用Population(1978)表示1978年的人口數(shù)。8.1.1數(shù)組的定義在使用以上兩種格式定義數(shù)組時(shí),要注意以下幾點(diǎn):(1)數(shù)組名的定名規(guī)則與變量名相同,在命名時(shí)應(yīng)盡可能有一定的含義,做到“見名知義”。(2)在同一個(gè)過程中,數(shù)組名不能與變量名同名,否則會(huì)出錯(cuò)。 (3)在定義數(shù)組時(shí),每一維的元素個(gè)數(shù)必須是常數(shù),不能是變量或表達(dá)式。如果需要在運(yùn)行時(shí)定義數(shù)組的大小,可以通過以下兩種方法來解決: ①用ReDim語句定義數(shù)組。 ②使用動(dòng)態(tài)數(shù)組(見8.2.1節(jié))。8.1.1數(shù)組的定義(4)數(shù)組的類型通常在As子句中給出,如果省略As子句,則定義的是默認(rèn)數(shù)組(見8.1.2節(jié))。此外,也可以通過類型說明符來指定數(shù)組的類型。(5)無論用哪一種格式定義數(shù)組,下界都必須小于上界。若需知道數(shù)組的上界值和下界值,可以通過Lbound和Ubound函數(shù)獲得,其格式為: Lbound(數(shù)組[,維]) Ubound(數(shù)組[,維])

Lbound函數(shù)返回“數(shù)組”某一“維”的下界值,而Ubound函數(shù)返回“數(shù)組”某一“維”的上界值,兩個(gè)函數(shù)一起使用即可確定一個(gè)數(shù)組的大小。對(duì)于一維數(shù)組來說,參數(shù)“維”可以省略。如果要測(cè)試多維數(shù)組,則“維”不能省略。8.1.1數(shù)組的定義例如:

DimA(1To100,0To50,-3To4)定義了一個(gè)三維數(shù)組,用下面的語句可以得到該數(shù)組各維的上下界:PrintLbound(A,1),Ubound(A,1)PrintLbound(A,2),Ubound(A,2)PrintLbound(A,3),Ubound(A,3)輸出結(jié)果為:1 100

0

50-3

48.1.2默認(rèn)數(shù)組在VisualBasic中,允許定義默認(rèn)數(shù)組。默認(rèn)數(shù)組是指數(shù)據(jù)類型為Variant(默認(rèn))的數(shù)組。在一般情況下,定義數(shù)組應(yīng)指明其類型,例如:

StaticElec(1To100)AsInteger 定義了一個(gè)數(shù)組Elec,該數(shù)組的類型為整型,它有100個(gè)元素,每個(gè)元素都是一個(gè)整數(shù)。如果把上面的定義改為:

StaticElec(1To100) 則定義的數(shù)組是默認(rèn)數(shù)組,其類型默認(rèn)為Variant,該定義等價(jià)于:

StaticElec(1To100)AsVariant8.1.2默認(rèn)數(shù)組對(duì)于默認(rèn)數(shù)組來說,同一個(gè)數(shù)組中可以存放各種不同類型的數(shù)據(jù)。因此,默認(rèn)數(shù)組可以說是一種“混合數(shù)組”。 例如:SubForm_Click()StaticDefau(5)Defau(1)=100Defau(2)=234.56Defau(3)="Beijing"Defau(4)="20"&NowDefau(5)=&HAAFFori=1To5Print"Defau(";i;")=";Defau(i)NextiEndSub該事件過程定義了一個(gè)靜態(tài)數(shù)組Defau(默認(rèn)數(shù)組一般應(yīng)定義為靜態(tài)的),然后對(duì)各元素賦予不同類型的數(shù)據(jù),包括整型、實(shí)型、字符串型、日期和時(shí)間類型及十六進(jìn)制整型。

8.2靜態(tài)數(shù)組與動(dòng)態(tài)數(shù)組定義數(shù)組后,為了使用數(shù)組,必須為數(shù)組開辟所需要的內(nèi)存區(qū)。根據(jù)內(nèi)存區(qū)開辟時(shí)機(jī)的不同,可以把數(shù)組分為靜態(tài)(Static)數(shù)組和動(dòng)態(tài)(Dynamic)數(shù)組。通常把需要在編譯時(shí)開辟內(nèi)存區(qū)的數(shù)組叫做靜態(tài)數(shù)組,而把需要在運(yùn)行時(shí)開辟內(nèi)存區(qū)的數(shù)組叫做動(dòng)態(tài)數(shù)組。當(dāng)程序沒有運(yùn)行時(shí),動(dòng)態(tài)數(shù)組不占據(jù)內(nèi)存。靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組由其定義方式?jīng)Q定:用數(shù)值常數(shù)或符號(hào)常量作為下標(biāo)定維的數(shù)組是靜態(tài)數(shù)組用變量作為下標(biāo)定維的數(shù)組是動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組以變量作為下標(biāo)值,在程序運(yùn)行過程中完成定義,通常分為兩步:第一步:在窗體層、標(biāo)準(zhǔn)模塊或過程中用Dim或Public聲明一個(gè)沒有下標(biāo)的數(shù)組(括號(hào)不能省略);第二步:在過程中用ReDim語句定義帶下標(biāo)的數(shù)組。

8.2.1動(dòng)態(tài)數(shù)組的定義ReDim語句格式:

ReDim[Preserve]變量(下標(biāo))As類型ReDim語句功能:該語句用來重新定義動(dòng)態(tài)數(shù)組,按定義的上下界重新分配存儲(chǔ)單元,并可為定義的變量改變存儲(chǔ)類型。當(dāng)重新分配動(dòng)態(tài)數(shù)組時(shí),數(shù)組中的內(nèi)容將被清除,但如果在ReDim語句中使用了Preserve選擇項(xiàng),則不清除數(shù)組內(nèi)容。在ReDim語句中可以定義多個(gè)動(dòng)態(tài)數(shù)組,但每個(gè)數(shù)組必須事先用“DimVariable()”或“PublicVariable()”這種形式進(jìn)行聲明,在括號(hào)中省略上下界,在用ReDim語句重新定義時(shí)指定數(shù)組下標(biāo)的上下界。ReDim只能出現(xiàn)在事件過程或通用過程中,用它定義的數(shù)組是一個(gè)“臨時(shí)”數(shù)組,即在執(zhí)行數(shù)組所在的過程時(shí)為數(shù)組開辟一定的內(nèi)存空間,當(dāng)過程結(jié)束時(shí),這部分內(nèi)存即被釋放。8.2.1動(dòng)態(tài)數(shù)組的定義說明:(1)在窗體層或模塊層定義的動(dòng)態(tài)數(shù)組只有類型,沒有指定維數(shù),其維數(shù)在ReDim語句中給出,最多不能超過8維。(2)可以用ReDim語句直接定義數(shù)組。如果在標(biāo)準(zhǔn)模塊層或窗體層沒有用Public或Dim聲明過同名的數(shù)組,則用ReDim定義的數(shù)組最多可達(dá)60維。(3)在一個(gè)程序中,可以多次用ReDim語句定義同一個(gè)數(shù)組,隨時(shí)修改數(shù)組中元素的個(gè)數(shù)。但是應(yīng)注意,只能改變?cè)氐膫€(gè)數(shù),不能改變數(shù)組的維數(shù),也不能用ReDim改變數(shù)組類型。8.2.2數(shù)組的清除和重定義數(shù)組一經(jīng)定義,便在內(nèi)存中分配了相應(yīng)的存儲(chǔ)空間,其大小是不能改變的。也就是說,在一個(gè)程序中,同一個(gè)數(shù)組只能定義一次。有時(shí)候,可能需要清除數(shù)組的內(nèi)容或?qū)?shù)組重新定義,這可以用Erase語句來實(shí)現(xiàn),其格式為:

Erase數(shù)組名[,數(shù)組名]...Erase語句用來重新初始化靜態(tài)數(shù)組的元素,或者釋放動(dòng)態(tài)數(shù)組的存儲(chǔ)空間。注意,在Erase語句中,只給出要刷新的數(shù)組名,不帶括號(hào)和下標(biāo)。說明:(1)當(dāng)把Erase語句用于靜態(tài)數(shù)組時(shí),如果這個(gè)數(shù)組是數(shù)值數(shù)組,則把數(shù)組中的所有元素置為0;如果是字符串?dāng)?shù)組,則把所有元素置為空字符串;如果是記錄數(shù)組,則根據(jù)每個(gè)元素(包括定長字符串)的類型重新進(jìn)行設(shè)置。見表8.1。8.2.2數(shù)組的清除和重定義8.2.2數(shù)組的清除和重定義 (2)當(dāng)把Erase語句用于動(dòng)態(tài)數(shù)組時(shí),將刪除整個(gè)數(shù)組結(jié)構(gòu)并釋放該數(shù)組所占用的內(nèi)存。也就是說,動(dòng)態(tài)數(shù)組經(jīng)Erase后即不復(fù)存在;而靜態(tài)數(shù)組經(jīng)Erase后仍然存在,只是其內(nèi)容被清空。 (3)當(dāng)把Erase語句用于變體數(shù)組時(shí),每個(gè)元素將被重置為“空”(Empty)。(4)Erase釋放動(dòng)態(tài)數(shù)組所使用的內(nèi)存。在下次引用該動(dòng)態(tài)數(shù)組之前,必須用ReDim語句重新定義該數(shù)組變量的維數(shù)。8.3數(shù)組的基本操作1.數(shù)組的引用數(shù)組的引用通常是指對(duì)數(shù)組元素的引用,其方法是,在數(shù)組后面的括號(hào)中指定下標(biāo)。要注意區(qū)分?jǐn)?shù)組定義和數(shù)組元素,在下面的程序片斷中:

Dimx(8)……Temp=x(8)…… 有兩個(gè)x(8),其中Dim語句中的x(8)不是數(shù)組元素,而是“數(shù)組說明符”,由它說明所建立的數(shù)組x的最大可用下標(biāo)值為8;而賦值語句“Temp=x(8)”中的x(8)是一個(gè)數(shù)組元素,它代表數(shù)組x中序號(hào)為8的元素。一般來說,在程序中,凡是簡單變量出現(xiàn)的地方,都可以用數(shù)組元素代替。數(shù)組元素可以參加表達(dá)式的運(yùn)算,也可以被賦值。8.3數(shù)組的基本操作在引用數(shù)組時(shí),應(yīng)注意以下幾點(diǎn):(1)在引用數(shù)組元素時(shí),數(shù)組名、類型和維數(shù)必須與定義數(shù)組時(shí)一致。 例如:Dimx%(10) …… Printx$(4)Print語句中的x$(4)不是數(shù)組x%中下標(biāo)為4的元素,必須寫成x%(4)。但是,如果把x%(4)寫成x(4),則是允許的。(2)如果建立的是二維或多維數(shù)組,則在引用時(shí)必須給出兩個(gè)或多個(gè)下標(biāo)。(3)引用數(shù)組元素時(shí),其下標(biāo)值應(yīng)在建立數(shù)組時(shí)所指定的范圍內(nèi)。 例如:DimArr(20) …… PrintArr(24) 運(yùn)行時(shí)將出現(xiàn)“下標(biāo)越界”錯(cuò)誤。8.3數(shù)組的基本操作

2.數(shù)組元素的輸入 數(shù)組元素一般通過For循環(huán)語句及InputBox函數(shù)輸入。例如:OptionBase1Dimstuname()AsStringSubForm_Click()ReDimstuname(4)AsStringFori=1To4temp$=InputBox$("EnterName:")stuname(i)=temp$NextiEndSub 上述程序運(yùn)行后,在對(duì)話框中輸入Zhang、Wang、Li、Zhao,它們被存入字符串?dāng)?shù)組Stuname中。8.3數(shù)組的基本操作多維數(shù)組元素的輸入通過多重循環(huán)來實(shí)現(xiàn)。由于VisualBasic中的數(shù)組是按行存儲(chǔ)的,因此把控制數(shù)組第一維的循環(huán)變量放在最外層循環(huán)中。 例如:

OptionBase1(在窗體層)

SubForm_Click()Dima(3,5)Fori=1to3Forj=1To5a(i,j)=i*jNextjNextIEndSub 程序運(yùn)行后,單擊窗體,結(jié)果為: a(1,1)=1,a(1,2)=2,a(1,3)=3......a(3,5)=158.3數(shù)組的基本操作3.數(shù)組元素的輸出 數(shù)組元素的輸出可以用Print方法來實(shí)現(xiàn)。例如:

OptionBase1(該語句放在窗體層中)

SubForm_Click()Dima(4,4)AsIntegerFori=1To4'將4行4列的數(shù)據(jù)存放在數(shù)組a中Forj=1To4a(i,j)=InputBox("EnterData:")NextjNexti

Fori=1To4'將數(shù)組a中的數(shù)據(jù)按4行4列形式輸出Forj=1To4Printa(i,j);"";NextjPrintNextiEndSub

8.3數(shù)組的基本操作4.數(shù)組元素的復(fù)制單個(gè)數(shù)組元素可以像簡單變量一樣從一個(gè)數(shù)組復(fù)制到另一個(gè)數(shù)組。 例如:DimB(4,8),A(6,6) ......B(2,3)=A(3,2)二維數(shù)組中的元素可以復(fù)制到另一個(gè)二維數(shù)組中的某個(gè)元素,也可以復(fù)制到一個(gè)一維數(shù)組中的某個(gè)元素,并且反之亦然。 例如:DimA(8),B(3,2) ......A(3)=B(1,2)B(2,1)=A(4)8.3數(shù)組的基本操作為了復(fù)制整個(gè)數(shù)組,仍要使用For循環(huán)語句。例如:

OptionBase1Dimname1(),name2()SubForm_Click()ReDimname1(10),name2(10)Fori=1To10msg$=InputBox$("Entername:")name1(i)=msg$NextiFori=1To10name2(i)=name1(i)NextiEndSub把數(shù)組Name1中的數(shù)據(jù)復(fù)制到name2中。8.3數(shù)組的基本操作 【例8.2】從鍵盤上輸入10個(gè)整數(shù),用冒泡排序(BubbleSort)對(duì)這10個(gè)數(shù)從小到大排序。 冒泡排序是常用的一種排序方法。之所以稱為“冒泡排序”,是因?yàn)橹递^小的或者說“較輕”的元素“浮到”作為繼續(xù)排序的一組數(shù)的頂部。對(duì)于數(shù)值數(shù)據(jù)和字符串?dāng)?shù)據(jù)來說,其排序過程基本上相同,即,從數(shù)據(jù)組的第一項(xiàng)開始,每一項(xiàng)(I)都與下一項(xiàng)(I+1)進(jìn)行比較,如果下一項(xiàng)的值較小,就將這兩項(xiàng)的位置交換,從而使值較小的數(shù)據(jù)項(xiàng)“升”到上面。這種操作反復(fù)進(jìn)行,直到數(shù)據(jù)組的結(jié)束,然后再回到開頭進(jìn)行重復(fù)處理。當(dāng)整個(gè)數(shù)據(jù)組自始至終再也不出現(xiàn)項(xiàng)目交換時(shí),全部數(shù)據(jù)項(xiàng)的排序即告結(jié)束。 首先在窗體上建立一個(gè)命令按鈕Command1,然后編寫如下的事件過程:8.3數(shù)組的基本操作SubCommand1_Click()Staticnumber(1To10)AsIntegermsg$="Enternumberforsort:"msgtitle$="SortDemo"Fori%=1To10number(i%)=InputBox(msg$,msgtitle$)Nexti%Fori%=10To2Step-1Forj%=1Toi%-1Ifnumber(j%)>number(j%+1)Thent=number(j%+1)number(j%+1)=number(j%)number(j%)=tEndIfNextj%Nexti%Fori%=1To10Printnumber(i%)Nexti%EndSub8.3數(shù)組的基本操作 上述過程首先定義一個(gè)一維數(shù)組,接著通過For循環(huán)用InputBox函數(shù)輸入10個(gè)整數(shù),然后用一個(gè)二重循環(huán)對(duì)輸入的數(shù)進(jìn)行排序,最后輸出排序結(jié)果。在排序時(shí),程序判斷前一個(gè)數(shù)是否大于后一個(gè)數(shù),如果大于,則交換兩個(gè)數(shù)的下標(biāo),即交換兩個(gè)數(shù)在數(shù)組中的位置。交換通過一個(gè)臨時(shí)變量來進(jìn)行。 如前所述,在建立數(shù)組時(shí),可以省略其類型,在這種情況下,所定義的數(shù)組為默認(rèn)數(shù)組,其類型為Variant。但是,如果數(shù)組中的元素用于排序,則在建立該數(shù)組時(shí),必須給出類型,否則可能會(huì)得不到正確的結(jié)果。8.3數(shù)組的基本操作

5.ForEach...Next語句 ForEach...Next語句類似于For...Next語句,兩者都用來執(zhí)行指定重復(fù)次數(shù)的一組操作。但ForEach...Next語句專門用于數(shù)組。格式:

ForEach成員In數(shù)組 循環(huán)體

[ExitFor] …...Next[成員]

這里的“成員”是一個(gè)變體變量,并在ForEach...Next結(jié)構(gòu)中重復(fù)使用,它實(shí)際上表示數(shù)組中的每個(gè)元素。“數(shù)組”是一個(gè)數(shù)組名,且沒有括號(hào)和上下界。

8.3數(shù)組的基本操作 ForEach...Next語句重復(fù)執(zhí)行的次數(shù)由數(shù)組中元素的個(gè)數(shù)確定,數(shù)組中有多少個(gè)元素,就自動(dòng)重復(fù)執(zhí)行多少次。 例如:DimMyArray(1to5) ForEachxinMyArray Printx; Nextx 將重復(fù)執(zhí)行5次(因?yàn)閿?shù)組MyArray有5個(gè)元素),每次輸出數(shù)組的一個(gè)元素的值。這里的x類似于For...Next循環(huán)中的循環(huán)控制變量,但不需要為其提供初值和終值,而是根據(jù)數(shù)組元素的個(gè)數(shù)確定執(zhí)行循環(huán)體的次數(shù)。此外,x的值處于不斷的變化之中,開始執(zhí)行時(shí),x是數(shù)組第一個(gè)元素的值,執(zhí)行完一次循環(huán)體后,x變?yōu)閿?shù)組第二個(gè)元素的值...,當(dāng)x為最后一個(gè)元素的值時(shí),執(zhí)行最后一次循環(huán)。x是一個(gè)變體變量,它可以代表任何類型的數(shù)組元素。注意,不能在For...Each...Next語句中使用用戶自定義類型數(shù)組,因?yàn)閂ariant不能包含用戶自定義類型。8.4數(shù)組的初始化所謂數(shù)組的初始化,就是給數(shù)組的各元素賦初值。除了使用賦值語句或InputBox函數(shù)為數(shù)組元素賦值以外,VisualBasic還提供了Array函數(shù),利用該函數(shù),可以使數(shù)組在程序運(yùn)行之前初始化,得到初值。格式:數(shù)組變量名=Array(數(shù)組元素值)功能:為數(shù)組元素賦值,即把一個(gè)數(shù)據(jù)集讀入某個(gè)數(shù)組。說明: (1)“數(shù)組變量名”是預(yù)先定義的數(shù)組名,在“數(shù)組變量名”之后沒有括號(hào)。之所以稱為“數(shù)組變量”,是因?yàn)樗鳛閿?shù)組使用,但作為變量定義,它既沒有維數(shù),也沒有上下界?!皵?shù)組元素值”是需要賦給數(shù)組各元素的值,各值之間以逗號(hào)分開。 (2)數(shù)組變量不能是具體的數(shù)據(jù)類型,只能是變體(Variant)類型。8.4數(shù)組的初始化例如:StaticNumbersAsVariantNumbers=Array(1,2,3,4,5) 將把1、2、3、4、5這五個(gè)數(shù)值賦給數(shù)組Numbers的各個(gè)元素,即Numbers(0)=1,Numbers(1)=2,Numbers(2)=3,Numbers(3)=4,Numbers(4)=5。例如:OptionBase1 PrivateSubCommand1_Click()StaticTest_strTest_str=Array("One","Two","Three","Four")PrintTest_str(4)EndSub

經(jīng)過上面的定義和初始化后,Test_str(1)="One",Test_str(2)="Two",Test_str(3)="Three",8.4數(shù)組的初始化一般來說,數(shù)組變量可以通過以下三種方式定義:(1)顯式定義為Variant變量。例如:

DimNumbersAsVariant

(2)在定義時(shí)不指明類型。例如:

DimNumbers

(3)不定義而直接使用。在一般情況下,數(shù)組元素的值通過賦值語句或InputBox函數(shù)讀入數(shù)組,如果使用Array函數(shù),則可使程序大為簡化。需注意的是,Array函數(shù)只適用于一維數(shù)組,即只能對(duì)一維數(shù)組進(jìn)行初始化,不能對(duì)二維或多維數(shù)組進(jìn)行初始化。8.5控件數(shù)組在VisualBasic中,可以使用控件數(shù)組,它為處理一組功能相近的控件提供了方便的途徑。8.5.1基本概念控件數(shù)組由一組相同類型的控件組成,這些控件共用一個(gè)相同的控件名字,具有同樣的屬性設(shè)置。數(shù)組中的每個(gè)控件都有唯一的索引號(hào)(IndexNumber),即下標(biāo),所有

溫馨提示

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