PĘTLE

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 „;”
$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