1、VBS(VBScript)作为一种脚本语音,很多时候大家将VBS看作是VB语言的一个简化版,它们之间存在着继承的关系,在这里小编为什么要提到VB语言呢?因为小编即将会用VB语言里面的东西来阐述下标越界。
2、我们通常所遇到的下标越界发生在数组的使用中,所谓下标对应的还有上标,读者可以把上标与下标之间看作是一个范围,而发生下标越界,就是操作者引用了不存在的数组元素,超出的数组元素的范围,从而引发下标越界。
3、下面我为大家写一个简单的脚本例子,来重现下标越界。例子:Dim array_test '定义一个数组array_test=array("张三","李四","王二") ’为数组赋值msgbox array_test(3) ’打印出数组第3个元素
4、读者从步骤3的例子中有没有发现什么问题?小编第一步就是定义了一个数组名字叫array_test,第二步为这个数组赋值3个数组元素,第三步打印出第3个数组元素。但是脚本运行却发生错误,提示"下标越界"如下图:
5、数组明明定义了3个数组元素,为什么将第三个元素打印出来会提示错误呢?接着读者就跟随小编的脚步进行排查一下吧。array_test=array("张三","李四","王二")
6、排查方法:Dim array_testarray_test=array("张三","李四","王二")For i=1 to 3 '循环打印出数组中的元素print array_test(i)&iNext******************************************打印出的结果:李四1王二2
7、解说:大家从打印出的结果可以看出循环打印的第一个数组元素是“李四”,但是从数组定义中“李四”应该是第二个元素,说到这里读者可能就会明白脚本在读取数组时是从数组0开始读取,所以在循环1到3时就只打印了数组第2个和第3个元素。
8、修改办法:将上面给出的例子中的龅歧仲半打印msgbox array_test(3)改为msgbox array_test(2)即可以解决下标越界的问题。Dim array_test '定义一个数组array_test=array("张三","李四","王二") ’为数组赋值msgbox array_test(2) ’打印出数组第3个元素