For...In...Next
枚举对象集合或数组的元素
For <变量> In <表达式>
语句
...
Next
参数
变量
|
已赋值的元素
|
表达式
|
描述对象的表达式, 或是至少是有一个元素的数组
|
备注
即使有 MustDeclareVars 语句设置, 脚本也将自动创建这个局部" 变量 ".
如果"表达式"是没有元素的对象集合, 或一个多维数组, 循环将被跳过, "变量"将包含一个空字符串.
如果" 表达式 " 不是对象也不是数组, 脚本将以错误停止, 除非已配置 COM 错误处理程序.
使用 For...In 时, Autoit 数组是只读的. 虽然可以在 For...In 循环中指定变量值,
但这个变化并不反映到数组本身. 枚举过程中修改数组的内容, 使用 For...To 循环语句.
For...In...Next 语句允许嵌套使用.
相关
With...EndWith
函数示例
#include <MsgBoxConstants.au3>
Example()
Func Example()
; Using an Array
Local $aArray[4]
$aArray[0] = "a"
$aArray[1] = 0
$aArray[2] = 1.3434
$aArray[3] = "test"
Local $sString = ""
For $vElement In $aArray
$sString = $sString & $vElement & @CRLF
Next
MsgBox($MB_SYSTEMMODAL, "", "For..IN Arraytest:" & @CRLF & "Result is: " & @CRLF & $sString)
; Using an Object Collection
Local $oShell = ObjCreate("shell.application")
Local $oShellWindows = $oShell.windows
If IsObj($oShellWindows) Then
$sString = ""
For $Window In $oShellWindows
$sString = $sString & $Window.LocationName & @CRLF
Next
MsgBox($MB_SYSTEMMODAL, "", "You have the following windows open:" & @CRLF & $sString)
Else
MsgBox($MB_SYSTEMMODAL, "", "You have no open shell windows.")
EndIf
EndFunc ;==>Example
----------------------------------------
|