Jak już zauważyliście na powyższym przykładzie Autoit wykonuje polecenia linia za linią, a jeżeli polecenia do wykonania się kończyły program samoczynnie wyłączał się.
Podstawową pętlą w autoit jest pętla while:
While 1 MsgBox(0, "Tutorial", "Hello World!") Wend
Pętla z argumentem 1 jest wykonywana w nieskończoność.
Składnia pętli while:
while ; argument na którym opiera się pętla
; polecenia które chcemy wykonywać w pętli
Wend ; oznacza koniec pętli
Pisząc skrypty w autoit możemy dodawać komentarze – robi się to po znaku „;”
Przykład wykorzystania zmiennej jako argumentu
$repeat = 1 ; początkowa wartość zmiennej $repeat While $repeat < 11 ; Zostaje sprawdzona wartość zmiennej $repeat, MsgBox(0, "Pętla",$repeat) ; wyświetla nam aktualną wartość $repeat $repeat = $repeat +1 ; zmieniamy wartość zmiennej $repeat Wend ; Koniec pętli
W tym przypadku pętla zostanie wykonana dziesięć razy ponieważ przy 11 próbie zmienna $repeat osiągnie wartość 11 przez co przekroczy warunek pętli while.(dalszy kod aż do Wend zostanie pominięty)
Stosowanie While jako pętli która ma zostać wykonana kilkukrotnie nie jest wygodne – o wiele wygodniejsze jest posłużenie się kolejnym typem pętli:
For $repeat =1 To 10 Step 1 ; MsgBox(0, "Pętla",$repeat) Next
W tym przypadku zmienną deklarujemy od razu w pętli – aby nie rozpisywać się składnia polecenia For wygląda tak:
For (Deklarujemy zmienną) = jej początkową wartość) to (Wartość powyżej której pętla nie będzie wykonywana)
(polecenia, które zostaną wykonywane w pętli)
Next (oznacza koniec pętli)
Step jest dodatkowym argumentem pętli For..To.. – oznacza on, o ile będzie się zmieniać wartość $repeat przy każdym kroku:
For $repeat =1 To 10 Step 2 ; MsgBox(0, "Pętla",$repeat) Next
W tym przypadku, wartość zmienia się o 2
For $repeat =10 To 1 Step -1 ; MsgBox(0, "Pętla",$repeat) Next
a tym razem, odliczamy do tyłu.
Kolejnym typem pętli jest pętla Do…Until. jest ona bardzo podobna do poprzedniej, jednak tutaj wprowadzamy jedynie warunek zakończenia pętli:
Do MsgBox(0, "Pętla",$repeat) $repeat = $repeat +1 Until $repeat = 11 ; warunek zakończenia pętli
Pozostało jeszcze opisać 2 „wewnętrzne” polecenia w pętlach:
ContinueLoop – jest to polecenie powrotu na początek pętli zanim ta dotrze do swojego „prawidłowego” końca (Wend, Next, Until)
For $repeat =10 To 1 Step -1 ; If $repeat = 5 then ContinueLoop endif MsgBox(0, "Pętla",$repeat) Next
W tym przypadku pętla pominie wyświetlanie 5 ponieważ ContinueLoop nakazuje powrót do początku pętli zanim ta mogłaby wyświetlić wartość 5 za pomocą MsgBox’a.
ExitLoop – jest to polecenie natychmiastowego wyjścia z pętli.
For $repeat =10 To 1 Step -1 ; MsgBox(0, "Pętla",$repeat) If $repeat = 5 then ExitLoop endif Next
Za pomocą w/w polecenia możemy zadecydować z ilu pętli zostaniemy 'wyrzuceni’ za jednym podejściem:
$x=0 While 1 For $repeat =10 To 1 Step -1 ; MsgBox(0, "Pętla",$repeat) If $repeat = 5 then ExitLoop 2; w ten sposób polecenie pominie pętle for, a następnie zignoruje pętle While 1 endif Next Wend Msgbox(0,'test','jesteś tutaj')
W przykładzie powyżej Autoit zakończy pracę po osiągnięciu wartości 5 przez zmienną $repeat
Na koniec – składnia AutoIt jak każdy język programowania umożliwia umieszczenie „pętli w pętlach” (masło maślane)
While 1 For $repeat =10 To 1 Step -1 ; MsgBox(0, "Pętla",$repeat) Next Wend