前言
在上次发布的碧蓝航线12-4练级脚本的测试阶段中,曾出现当结束脚本后再次开启循环体不运行的BUG,并且当时我并没有找到原因,后来看到按键精灵的For循环代码时,我明白了原因。
原因
在按键精灵中的For循环提供了多种格式
例子1:
//支持Exit For 命令退出循环
For i=0 To 9
Delay 100
Next
//循环10次
例子2:
//支持Exit For 命令退出循环
For 10
Delay 100
Next
//循环10次
例子3:
//支持Exit For 命令退出循环
For i=0 to 19 step 2
Delay 100
Next
//循环10次
例子4:
//支持Exit For 命令退出循环
For i=0 to 19 step 2
Delay 100
If i>9 Then
Exit For
End If
Next
//循环5次
例子5:
For 10
Delay 100
EndFor
//循环10次
起初我使用的是例子5的格式,而再运行之后循环体的运行的原因的问题也是出在这里。在按键精灵脚本重新运行时,对于For循环的计数并没有清空,例子5的循环原理还是使用一个变量作为计数,而在此运行脚本该变量还是处于循环结束的状态,所以第二次启动脚本时并不会正确运行。
更改
知道原因之后改正我的代码也变得很简单,既然计数变量并不会自动清空,那么只需要我们在循环结束之后手动清空即可,而按键精灵正好提供了这种格式,所以我们使用例1的格式,每次重新运行代码都会将计数重新赋值。
改正后代码为
For i=0 to 3
····
····
Next