51Testing软件测试论坛

标题: 一点小问题请教 [打印本页]

作者: wu_xcw    时间: 2007-6-29 15:24
标题: 一点小问题请教
Dim a(10)
b = 10
For i = 0 to b step 1
        a(i) = i+1
Next
'通过msgbox()函数,察看数组里的数据,但是总是越界,而且不能给出第一个数据
j = 0
For each j in a
    msgbox(a(j))
Next

‘这段代码有问题,那位高人给指教一下,
作者: vincenthan    时间: 2007-6-29 15:59
把a(i)=i+1改成a(i)=i就行了
作者: smallmark    时间: 2007-6-29 16:07
为什么会出现这个问题呢sdlkfj5
作者: vincenthan    时间: 2007-6-29 16:11
因为j是数组中元素的值,所以执行完变为11,超过了10
作者: smallmark    时间: 2007-6-29 16:13
msgbos(a(j-1))sdlkfj3
作者: zhuyuancan    时间: 2007-6-29 16:17
是For each j in a
    msgbox(a(j))
Next
用的有问题
作者: wu_xcw    时间: 2007-6-29 18:21
俺明白了,把for each next 理解错了,呵呵,在高人的指导写已经解决了,谢谢大家了
作者: walker1020    时间: 2007-6-30 23:34
原帖由 wu_xcw 于 2007-6-29 15:24 发表
Dim a(10)
b = 10
For i = 0 to b step 1
        a(i) = i+1
Next
'通过msgbox()函数,察看数组里的数据,但是总是越界,而且不能给出第一个数据
j = 0
For each j in a
    msgbox(a(j))
Next

‘这段代 ...


说简单一点,Dim a(10) 实际上是定义了 a(0),a(1),...,a(9). 注意:最后一个是a(9),而不是a(10),因为 第一个是 a(0),而不是a(1)!
根据你的循环,最后一个是a(10) ,当然要报错了。
作者: jimmy2006.hi    时间: 2007-7-2 09:51
我记得VB定义数组的时候a(10)就是指a(0)~a(10)11个元素,VBs和VB不一样吗?想请教一下for each这个怎么用。

[ 本帖最后由 jimmy2006.hi 于 2007-7-2 09:55 编辑 ]
作者: 阅微草人    时间: 2007-7-2 10:11
Dim A(10)
虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组都是基于 0 的,所以这个数组实际上包含 11 个元素。在基于 0 的数组中,数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。

在数组中使用索引为数组的每个元素赋值。从 0 到 10,将数据赋给数组的元素,如下所示:

A(0) = 256
A(1) = 324
A(2) = 100
. . .
A(10) = 55


在下例中,MyTable 变量是一个有 6 行和 11 列的二维数组:

Dim MyTable(5, 10)

这是vbscript帮助文档里的内容。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2