for的条件检测是怎么判断的,_ArrayDelete删除数组后循环报错
#Include <Array.au3>Global $array
$array = "1"
$array = ""
For $i = 0 To UBound($array) - 1 Step 1
MsgBox(0,0,UBound($array) & " " & $i & " ")
If (StringIsAlNum($array[$i]) = 0) Then
_ArrayDelete($array, $i)
$i -= 1
EndIf
MsgBox(1,1,UBound($array) & " " & $i & " " & $array[$i])
Next不符合循环条件居然循环进去了,哪里出问题了? 第一个 可以试试看 if not StringIsAlNum($array[$i]) then
第二个 arraydelete之后数组的维度就变小了 然而$i的大小在开始循环的时候就确定了 一旦超出数组的维度就会报错简单点的办法是倒序循环
For $i= UBound($array) - 1 to 0 Step -1 回复 2# zch11230
我还以为是每次循环都要重新检测一遍UBound($array),谢了哈
页:
[1]