Bucle

Buclele (loops) se folosesc pentru portiuni de cod care vreti sa se repete de mai mutlte ori sau pana cand se intalneste o conditie. In AutoIt sunt disponibile patru tipuri de bucle (structuri repetitive):

 

  1. For…Next

Bucla folosita in special pentru executarea unei portiuni de cod de un numar cunoscut de ori. Prototip:

Variabila va fi creata in domeniul Local. Bucla se incheie cand variabila are valoarea de sfarsit. Pasul este optional, daca nu este setat are valoarea 1, iar daca este o variabila se va citi doar la intrarea in bucla. Acest tip de bucle pot sa fie imbricate.

Exemple folosind aceasta bucla:

In primul exemplu se vor afisa in consola, pe rand, numerele de la 1-10.

In al doilea exemplu se vor afisa in consola, din 2 in 2, numerele de la 1-10.

In al treilea exemplu se vor afisa numerele de la 1-6, fara 5. Se observa conditia pusa, cand $index = 5 se continua bucla fara a afisa in consola, iar cand $index = 7 se iese din bucla (fara afisare in consola), astfel nu se ajunge la indexul 10.

 

  1. While…WEnd

Aceasta bucla se foloseste in special cand nu se cunoaste neaparat numarul de iteratii prin bucla dar bucla va continua cu iteratiile cat timp o expresie este evaluata ca adevarata. Prototipul este:

Un exemplu folosind acest tip de bucla:

In acest exemplu bucla continua atata timp cat valoarea stocata in prima variabila este mai mica decat cea stocata a doua. Prima variabila este afisata si se incrementeaza la fiecare iteratie prin bucla. Daca rulati scriptul, in consola ar trebui sa aveti numerele de la 2-6. De precizat ca si din aceasta bucla se poate iesi fortat folosind cuvantul cheie ExitLoop.

 

  1. Do…Until

Aceasta bucla este foarte similara cu bucla While…WEnd, cu particularitatea ca aceasta bucla va face cel putin o iteratie si apoi va incepe testarea conditiei si va continua pana cand este indeplinita conditia impusa. Prototipul este:

Un exemplu folosind acest tip de bucla:

Daca rulati acest script in consola va fi afisat continutul variabilei $var (adica 3) chiar daca contidia a fost satisfacuta de la inceput.

 

  1. For…In…Next

Acest tip de bucla se foloseste pentru a enumera elementele intr-un obiect sau vector. Prototipul este:

Ca si in cazul buclei For…Next variabila va apartine domeniului Local. Daca expresia este un obiect fara elemente sau o matrice, variabila va contine un empty string. Daca expresia nu este un obiect sau vector scriptul se va opri cu un mesaj de eroare. Daca expresia este un vector, el va fi disponibil doar pentru citire, orice modificare in bucla nu afecteaza vectorul in sine. Acest tip de bucle pot fi imbricate.

Un exemplu folosind acest tip de bucla:

Daca rulati acest script in consola vor fi afisate elementele vectorului $array.

 

Nota:  in bucle de tip While…WEnd si Do…Until, care pot fi bucle infinite, este bine sa folositi o pauza scurta (folosind functia Sleep(x), unde x este numarul de milisecunde) pentru a evita supraincarcarea CPU.


* Pentru orice intrebari sau nelamuriri legate de curs sau limbajul AutoIt accesati sectiunea AutoIt a forumului SkullBox sau platforma de suport tehnic NetHelp.