- 注册时间
- 2010-11-11
- 最后登录
- 2025-5-27
- 阅读权限
- 200
- 积分
- 14361
- 精华
- 2
- 帖子
- 843
  

TA的每日心情 | 无聊 2025-5-27 03:37:20 |
---|
签到天数: 366 天 [LV.9]以坛为家II
我玩的应用:
  
|
数组: 具有相同数据类型的一组数据按照一定的顺序构成的数据集合,实际上就是一组内存地址的标记符号。
数组就是由许多名称相同的变量聚集在一起,数组的用法和普通变量是完全一样的,它也可以存入任何数据类型,唯一的不同点是它在内存中占据的是一块连续的空间,您可以依序给它们编号,再依编号来使用它们。
数组的声明:
一个变量就是没有声明,也可以直接引用并赋值。但数组必须先声明大小,否则程序无法知道必须保留多少的内存空间给这个数组使用,如果没有声明就直接使用数组的话,就会现出没有定义数组错误。使用数组之前一定要先声明,这是和普通的变量不同的地方。
声明数组也使用关键字dim,只不过数组名后面要带一个圆括号,括号中填写数组长度;
Dim 数组名(n)
数组的好处在于它可以一次声明很多个变量。如要声明10个变量只要写“Dim boss(9)”,这样一下子就有十个“boss”了,而不用慢慢地写“boss0”、“boss1”、“boss2”......“boss9”。那声明10个变量为什么用“9”?这是因为计算机是从“boss(0)”开始算,只要声明“boss(9)”就可以了。
一维数组
下例声明了一个包含 11 个元素的一维数组:
Dim A(10)
虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组都是基于 0 的,所以这个数组实际上包含 11 个元素。在基于 0 的数组中,数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。
在数组中使用索引为数组的每个元素赋值。从 0 到 10,将数据赋给数组的元素,如下所示:
A(0) = 256
A(1) = 324
A(2) = 100
. . .
A(10) = 55
程序解读:
一维数组类似于标了号码的一排装货箱子,对于这一排箱子,我们可以给它起一个名字,比如叫做myarray,不过对他们进行标号时,是从0开始的,例如现在有5个箱子,其标号为0,1,2,3,4;每个箱子里都放着一些物品,这些物品叫数组的元素,现在我们要把1个鸡蛋放到第一个箱子中,把5个鸡蛋放到第二个箱子中我们就写
myarray(0)=1个鸡蛋
myarray(1)=5个鸡蛋
二维数组
数组并不仅限于一维。数组的维数最大可以为 60(尽管大多数人不能理解超过 3 或 4 的维数)。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。
mytable 变量是一个有6行和11列的二维数组:
dim mytable(5,10)
在二维数组中,括号中第一个数字表示行的数目,第二个数字表示列的数目。
程序解读:
二维数组类似于棋盘的格子,每个格子的交叉点看作是一个箱子,要定位第3行第3列的交叉点,我们就写myarray(2,2)
动态数组
有时候我们不想在一开始时就设置数组的大小,想要到程序执行时再看情况而定,这时我们可以声明一个尚未定义大小的变量,到要使用时再定义它的大小,如果到最后觉得它不够大了,也可以再重新定义。
声明动态数组,即在运行脚本时大小发生变化的数组。对数组的最初声明使用 Dim 语句或 ReDim 语句。但是对于动态数组,括号中不包含任何数字。
Dim 数组名()
只要在括号中不输入数值,就可以定义一个不确定大小的数组,但现在您是不能使用这个数组的,因为您还没定义它的大小,想要重新定义的话必须这么写:
Redim 数组名(n)
这样就可以重新定义它的大小并且也可以再使用数组。如果又觉得数组太大或太小,您也可以再用“Redim”一次重新定义,但有一点要注意的是:您在重新定义以后之前的数据都会消失,如果您一定要保留的话您可以使用如下语句来重新定义,这样就会保留之前的数据:
Redim Preserve 数组名(n)
<%
dim score() '声明不确定个数的数组?
redim score(3) '重新定义数组变量为4个
score(0) = 90 '给数组赋值
score(1) = 86
score(2) = 99
score(3) = 54
'第一次显示数组“score”的4个变量内容,<br>是换行符
response.write(score(0) & "<br>" & score(1) & "<br>" & score(2) & "<br>" & score(3))
response.write("<hr>") '插入水平线做为分隔线
redim score(4) '重新定义数组,增加数组的大小为5,原来的数值都会被取消
score(4) = 78 '定义score(4)
'第二次显示数组“score”的5个变量内容,因为前4个变量没赋值,所以不会显示,<br>是换行符
response.write(score(0) & "<br>" & score(1) & "<br>" & score(2) & "<br>" & score(3) & "<br>" & score(4))
response.write("<hr>") '插入水平线做为分隔线
score(0) = 30
score(1) = 40
score(2) = 50
score(3) = 60 '重新给score(0)到score(3)赋值
redim preserve score(5) '重新定义数组变量为6个,但用preserve保留数组数值
score(5) = 100 '给score(5)赋值
'第三次显示数组“score”的6个变量内容
'注意:因为用Preserve保留数组数值,score(4)仍保留原来的数值,所以全部显示,<br>是换行符
response.write(score(0) & "<br>" & score(1) & "<br>" & score(2) & "<br>" & score(3) &_
"<br>" & score(4) & "<br>" & score(5))
response.write("<hr>") '插入水平线做为分隔线
%>
|
|