Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops n级嵌套循环vbs_Loops_Dynamic_Vbscript_Nested - Fatal编程技术网

Loops n级嵌套循环vbs

Loops n级嵌套循环vbs,loops,dynamic,vbscript,nested,Loops,Dynamic,Vbscript,Nested,有没有一种方法可以优化这个嵌套循环示例以使用这些var_数组的动态数量 'Dim var0_Arr : var0_Arr = Array(min, max, step) Dim var1_Arr : var1_Arr = Array(0, 1.0, 0.5) Dim var2_Arr : var2_Arr = Array(0, 1.0, 0.5) Dim var3_Arr : var3_Arr = Array(0, 1.0, 0.5) D

有没有一种方法可以优化这个嵌套循环示例以使用这些var_数组的动态数量

'Dim var0_Arr : var0_Arr = Array(min,   max,    step)
Dim var1_Arr : var1_Arr =   Array(0,    1.0,    0.5)
Dim var2_Arr : var2_Arr =   Array(0,    1.0,    0.5)
Dim var3_Arr : var3_Arr =   Array(0,    1.0,    0.5)
Dim var4_Arr : var4_Arr =   Array(0,    1.0,    0.5)
'Dim var5_Arr : var5_Arr = ...
'Dim var6_Arr : var6_Arr = ...
'...

for var1 = var1_Arr(0) to var1_Arr(1)  step var1_Arr(2)
    for var2 = var2_Arr(0) to var2_Arr(1)  step var2_Arr(2)
        for var3 = var3_Arr(0) to var3_Arr(1)  step var3_Arr(2)
            for var4 = var4_Arr(0) to var4_Arr(1)  step var4_Arr(2)
                msgbox var1 & " " & var2 & "    " & var3 & "    " & var4
            next
        next
    next
next
我想用这样的方法:

Dim var_Arr : var_Arr = Array(  Array(0,    1.0,    0.5),_
                                Array(0,    1.0,    0.5),_
                                Array(0,    1.0,    0.5),_
                                Array(0,    1.0,    0.5))

使用UBound(var_Arr),我知道嵌套循环的深度,但我不知道如何结合动态范围(min、max、step)实现动态嵌套循环。

这个答案解决了我的问题:

vbs中不支持唯一的切片:

Function Slice(ByRef arrArray, intStart, intEnd)

    If intEnd = vbNull Then intEnd = UBound(arrArray)
    If intStart < 0 Then intStart = UBound(arrArray) - intStart

    arrTemp = Array()
    intCount = 0

    For i = intStart To intEnd
        ReDim Preserve arrTemp(intCount)
        arrTemp(intCount) = arrArray(i)
        intCount = intCount + 1
    Next

    Slice = arrTemp

End Function
函数片(ByRef Arraray、intStart、Intential)
如果INTERNAL=vbNull,则INTERNAL=UBound(阵列)
如果intStart<0,则intStart=UBound(arrArray)-intStart
arrTemp=Array()
整数=0
因为我开始打算
ReDim保存ARRTTEMP(intCount)
arrTemp(intCount)=阵列(i)
intCount=intCount+1
下一个
切片=arrTemp
端函数
来源