6 Pętle i instrukcja GoTo Zobacz pojedynczy post
Pętle
Pętle służą do wykonywania wielokrotnie danej części kodu. Podczas ich stosowania należy pamiętać, żeby liczba powtórzeń nie była zbyt duża, gdyż spowoduje to błąd krytyczny UT.
Kod: | Error: "Runaway loop detected (over 100000 iterations)" |
Pętla for
Pętla for ma postać:
Unreal Script: | for(ustalenie_początku; warunek_pętli; zwiększenie_licznika;) { blok instrukcji }
|
i służy do wykonania N razy danego bloku instrukcji. Jest przydatna np. w momencie gdy chcemy odczytać wartości z tablicy:
Unreal Script: | local int i; for(i=0; i<20; i++;) { BroadCastMessage("Petla for"$i); }
|
Pętla while
Pętla while ma postać:
Unreal Script: | while (warunek) { blok instrukcji }
|
i w przeciwieństwie do pętli for można ją wykonywać bez określenia liczby jej powtórzeń - tzn., że może być wykonywana dopóki nie otrzymamy żądanego przez nas wyniku (np. odpowiedniego obiektu).
Instrukcja GoTo
Jest to jedna z tych użytecznych instrukcji z którymi należy umieć się obchodzić. Powoduje ona skok do określonego miejsca w funkcji. Składa się ona z etykiety np.:
Która rozpoczyna dany blok funkcji, oraz instrukcji skoku np.:
Należy pamiętać, że nie można wykonać skoku do etykiet w innej funkcji. Niezwykle ważne także właściwe wykorzystanie. Nie można dopuścić aby instrukcja GOTO wpadała w nieskończone pętle:
Unreal Script: | Etykieta1: BroadCastMessage("Moja pierwsza instrukcja goto"); GOTO Etykieta1;
|
Coś takiego spowoduje następujący błąd:
Kod: | Error: "Runaway loop detected (over 100000 iterations)" |
Należy zatem wprowadzić jakieś ograniczenie, pozwoli zapobiec temu błędowi, np.:
Unreal Script: | Etykieta1: BroadCastMessage("Moja pierwsza instrukcja goto"); if(i<10) { i++; GOTO Etykieta1; }
|
W tej postaci instrukcja warunkowa pozwoli tylko na 10 kolejnych wywołań instrukcji GOTO. Lekko zmieniona wersja tej instrukcji zostanie omówiona przy okazji stanów.
|