AutoIT tut 13 : FOR … IN… NEXT
FOR … IN… NEXT
Chức năng của câu lệnh này là liệt kê các phần tử bên trong một mảng hoặc một tập hợp object (đối tượng) COM (component object model)
Cú pháp
For <var> In <expression>
<các câu lệnh>
........
Next
Giải thích
<var> : biến sẽ được gán giá trị của từng phần tử trong <expression>
<expression> : một đối tượng COM hoặc một mảng có ít nhất một phần tử.
Chú ý
Ø Nếu <expression> là một tập hợp object không có phần tử, thì đoạn script sẽ bỏ qua việc lặp và <var> sẽ chứa một chuỗi rỗng.
Ø Nếu <expression> không phải là object, cũng không phải là mảng, thì đoạn script sẽ dừng với một lỗi được thông báo, trừ khi bạn có sử dụng trình điều khiển COM Error.
Ø Giả sử trường hợp <expression> bạn dùng là một mảng và bạn có thay đổi giá trị của các phần tử trong mảng khi For…In đang chạy, thì giá trị đó sẽ không được ánh xạ ngay vào trong mảng. Chỉ khi For… In kết thúc thì thay đổi đó mới có hiệu lực.
Ø Vòng lặp For…In cho phép lồng vào nhau.
Ví dụ 1
Global $array[4]
$array[0]="w"
$array[1]="x"
$array[2]="y"
$array[3]="z"
For $element In $array
MsgBox(0,"Current $array item",$element)
Next
Ví dụ 2
Đoạn mã sau sẽ thông báo cho bạn biết các cửa sổ Explorer nào đang mở
$oShell = ObjCreate("shell.application")
$oShellWindows=$oShell.windows
if Isobj($oShellWindows) then
$string=""
for $Window in $oShellWindows
$String = $String & $Window.LocationName & @CRLF
next
msgbox(0,"","You have the following windows open:" & @CRLF & $String)
else
msgbox(0,"","you have no open shell windows.")
endif