Ключевое слово For...In...Next

         Описание ключевого слова


For...In...Next

Перечисляет элементы в коллекции объекта или массива

For <variable> In <expression>
    <statements>
Next

Параметры

variable Переменная, которой будет присваиваться значение элемента
expression Должно быть выражением, возвращающим объект или массив с как минимум одним элементом.
statements Многострочный блок операторов, который выполняется, пока происходит перечисление элементов.

Примечания

Переменная создаётся автоматически в локальной области видимости, даже если включена опция MustDeclareVars.
Если выражением является коллекция объекта, не содержащая элементов, цикл будет пропущен, а переменной будет присвоена пустая строка.
Если выражение не является объектом или массивом, скрипт будет остановлен с ошибкой (если не настроен или не включён обработчик ошибок COM, COM Error handler)
Массивы AutoIt внутри выражения For...In доступны только для чтения. Присвоить значение переменной внутри выражения For...In возможно, однако, это изменение никак не скажется на самом массиве. Чтобы иметь возможность модифицировать содержание массива используйте цикл For...To.

Выражения For...In...Next могут быть вложенными.

См. также

With...EndWith

Пример

; Использование массива
Local $aArray[4]

$aArray[0] = "a"
$aArray[1] = 0
$aArray[2] = 1.3434
$aArray[3] = "test"

$sString = ""
For $vElement In $aArray
    $sString &= $vElement & @CRLF
Next

MsgBox(0, "For...In...Next, массив", "Результат: " & @CRLF & $sString)

; Использование объекта
$oShell = ObjCreate("shell.application")
$oShellWindows = $oShell.windows

If IsObj($oShellWindows) Then
    $sString = ""

    For $Window In $oShellWindows
        $string = $sString & $Window.LocationName & @CRLF
    Next

    MsgBox(4096, "", "Открыты следующие окна:" & @CRLF & $sString)
Else
    MsgBox(4096, "", "Не открыто никаких окон :(.")
EndIf