Keyword Reference

首页  后退  前进

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

----------------------------------------