Instrukcje warunkowe

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; 
}