W języku ActionScript 3.0 istnieją trzy podstawowe instrukcje warunkowe służące do sterowania przepływem wykonania programu.
Instrukcja if..else
Instrukcja warunkowa
if..else
umożliwia sprawdzenie warunku i wykonanie jednego bloku kodu, jeśli warunek jest spełniony, albo innego bloku kodu, jeśli warunek nie jest spełniony. Poniższy przykładowy kod sprawdza, czy wartość
x
przekracza 20 i wywołuje funkcję
trace()
, jeśli ten warunek jest spełniony, albo wywołuje funkcję
trace()
z innym argumentem, jeśli nie jest spełniony:
if (x > 20)
{
trace("x is > 20");
}
else
{
trace("x is <= 20");
}
Jeśli nie chcemy wykonywać alternatywnego bloku kodu, możemy użyć instrukcji
if
bez instrukcji
else
.
if..else if
Korzystając z instrukcji warunkowej
if..else if
, można sprawdzać więcej niż jeden warunek. Poniższy kod sprawdza nie tylko, czy wartość
x
przekracza 20, lecz również czy wartość
x
jest ujemna:
if (x > 20)
{
trace("x is > 20");
}
else if (x < 0)
{
trace("x is negative");
}
Jeśli po instrukcji
if
lub
else
następuje tylko jedna instrukcja, nie trzeba jej ujmować w nawiasy sześcienne. W poniższym przykładzie nie użyto nawiasów sześciennych:
if (x > 0)
trace("x is positive");
else if (x < 0)
trace("x is negative");
else
trace("x is 0");
Firma Adobe zaleca jednak, aby zawsze używać nawiasów sześciennych, ponieważ późniejsze dodanie instrukcji do instrukcji warunkowej bez nawiasów może doprowadzić do nieoczekiwanego zachowania programu. W poniższym przykładzie wartość
positiveNums
jest zwiększana o 1 niezależnie od tego, czy wartością warunku jest
true
:
var x:int;
var positiveNums:int = 0;
if (x > 0)
trace("x is positive");
positiveNums++;
trace(positiveNums); // 1
switch
Instrukcja
switch
jest użyteczna, jeśli mamy kilka możliwych ścieżek wykonania, a wybór jednej z nich zależy od wartości tego samego wyrażenia warunkowego. Oferuje ona funkcjonalność podobną do długiego szeregu instrukcji
if..else if
, ale jest nieco bardziej czytelna. Zamiast sprawdzać wartość logiczną warunku, instrukcja
switch
oblicza wartość wyrażenia i na podstawie wyniku wybiera jeden z bloków kodu do wykonania. Bloki kodu rozpoczynają się od instrukcji
case
i kończą instrukcją
break
. Na przykład poniższa instrukcja
switch
wyświetla nazwę dnia tygodnia na podstawie numeru dnia zwróconego przez metodę
Date.getDay()
:
var someDate:Date = new Date();
var dayNum:uint = someDate.getDay();
switch(dayNum)
{
case 0:
trace("Sunday");
break;
case 1:
trace("Monday");
break;
case 2:
trace("Tuesday");
break;
case 3:
trace("Wednesday");
break;
case 4:
trace("Thursday");
break;
case 5:
trace("Friday");
break;
case 6:
trace("Saturday");
break;
default:
trace("Out of range");
break;
}
|
|
|