Pętle

Klamry

> LeekScript samouczek

Prędzej czy później, gdy zaczniesz kodować, będziesz musiał powtórzyć tę samą instrukcję kilka razy:

var wróg = pobierz najbliższego wroga();

użyjBroń(wróg); użyjBroń(wróg); użyjBroń(wróg); użyjBroń(wróg);

Może nie jest to problemem, jeśli chodzi o odpalenie 3-4 razy, ale gdy chcesz zrobić bardziej zaawansowane algorytmy, prawdopodobnie będziesz musiał powtarzać instrukcje kilkadziesiąt razy, a nawet kilka razy zmiennych, czego wtedy nie da się zrobić w ten sposób. Tutaj do gry wchodzą pętle. Pętla to element kodu pozwalający na powtarzanie sekwencji instrukcji tyle razy, ile jest to konieczne. Za każdym razem, gdy kod zawarty w pętli jest powtarzany, mówimy o iteracji.

var wróg = pobierz najbliższego wroga();

for(var i = 0; i < 4; i++) { użyjBroń(wróg); } //od razu ładniej :)

W zależności od tego, co chcesz zrobić, istnieje kilka rodzajów pętli, które zobaczymy poniżej: pętle „for”, „while”, „do while”, „foreach”. To prawdopodobnie wiele różnych pętli, a ich nazwa może wydawać się barbarzyńska, ale każda ma określone zastosowanie, jak zobaczymy poniżej.

pętla while

Ta pętla jest najprostsza ze wszystkich. Podczas gdy oznacza "Tak długo, jak... Zrób...", pętla ta umożliwia powtórzenie sekwencji instrukcji, o ile spełniony jest dany warunek. Warunkiem i instrukcją może być wszystko i wszystko, na przykład: mów, dopóki mam punkty akcji, idź do przodu, dopóki mam punkty ruchu, ...

Jego składnia jest następująca:

podczas (warunek) { instrukcje; }

Oczywiście „stan” i „instrukcje” należy zastąpić tym, co konieczne.

Pętla do-while

Ta pętla jest w rzeczywistości bardzo podobna do pętli while pokazanej wcześniej, z tą różnicą, że wykonuje instrukcje co najmniej raz przed sprawdzeniem warunku. Jeśli pętla while mogłaby zostać przetłumaczona jako „Tak długo, jak… Wykonaj…”, pętla do-while byłaby raczej tłumaczona jako „Do… Tak długo, jak…”

Jego składnia jest dość podobna do składni pętli while, ale dobrze tłumaczy niuanse między nimi:

do {// najpierw wykonujemy instrukcje instrukcje; }while(warunek);//następnie patrzymy na warunek

dla pętli

Pętla for jest używana głównie do używania licznika. Jego składnia jest nieco bardziej obszerna niż w przypadku innych pętli, ale umożliwia podkreślenie ważnych cech tej pętli.

Jego składnia to:

for(inicjalizacja; warunek; operacja) { instrukcje; }

Warunek działa tak samo jak warunek pętli while, ale pojawiły się dwa nowe elementy: inicjalizacja i operacja. Te dwa elementy umożliwiają następnie utworzenie licznika pętli (zwykle chodzi o utworzenie lub modyfikację zmiennej) oraz jego aktualizację.

Na przykład, aby strzelić trzy razy, możesz:

var wróg = pobierz najbliższego wroga();

for(var licznik = 0; licznik < 3; licznik += 1) { użyjBroń(wróg); }

Możemy zauważyć, że ten kod można również utworzyć za pomocą poprzednich pętli:

var wróg = pobierz najbliższego wroga();

licznik var = 0; podczas gdy (licznik < 3) { licznik += 1; użyjBroń(wróg); }

Ale tutaj licznik i jego przyrost nie są podświetlane, na co pozwala składnia pętli for.

pętla foreach

Ta pętla jest nieco szczególna: specjalizuje się w przechodzeniu przez elementy tablicy. Zamiast tego oznaczałoby to „Dla każdego [elementu tablicy] Wykonaj…”.

Można go stosować na dwa różne sposoby, w zależności od potrzeb:

for(wartość zmiennej w tablicy) { //w każdej iteracji pętli wartość będzie elementem tablicy. instrukcje; }

Czasami może być konieczna znajomość pozycji badanego elementu, wtedy odpowiednia składnia to:

for(pozycja zmiennej: wartość zmiennej w tablicy) { //w każdej iteracji pętli wartość będzie elementem tablicy i pozycjonuje swoją pozycję w tablicy, więc będziemy mieć: tablica[pozycja] == wartość instrukcje; }

Na przykład, aby uzyskać listę efektów, jakie będzie miał chip, możesz:

for(efekt zmiennej w getChipEffects(CHIP_DEVIL_STRIKE)) { if(effect[0] == EFFECT_DAMAGE) powiedz("boli"); }

Uwaga: zmienne „position” i „value” można utworzyć przed pętlą:

wartość zmiennej, pozycja; for(pozycja: wartość w tablicy) { //w każdej iteracji pętli wartość będzie elementem tablicy. instrukcje; }

Z tą pętlą trzeba być ostrożnym: modyfikowanie tablicy podczas jej działania może rzeczywiście powodować irytujące błędy w kodzie, więc należy tego unikać w jak największym stopniu.

Ważne Od wersji 1.17 z 31 października 2020 r. do przeglądania można używać składni for (klucz var: var @wartość w tablicy)