Poradnik Autoit – 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 „;”

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

Dodaj komentarz