Voorwaardelijke instructies

ActionScript 3.0 bevat drie voorwaardelijke basisinstructies waarmee u de programmeerstroom kunt beheren.

if..else

Met de voorwaardelijke instructie if..else kunt u een voorwaarde testen en vervolgens een codeblok uitvoeren als die voorwaarde bestaat of een ander codeblok uitvoeren als de voorwaarde niet bestaat. De volgende code test bijvoorbeeld of de waarde van x hoger is dan 20, genereert een functie trace() als dat zo is en genereert een andere functie trace() als dat niet zo is:

if (x > 20) 
{ 
    trace("x is > 20"); 
} 
else 
{ 
    trace("x is <= 20"); 
}

Als u geen alternatief codeblok wilt uitvoeren, kunt u de instructie if zonder de instructie else gebruiken.

if..else if

U kunt met de voorwaardelijke instructie if..else if meerdere voorwaarden testen. De volgende code test bijvoorbeeld niet alleen of de waarde van x hoger is dan 20, maar ook of de waarde van x negatief is:

if (x > 20) 
{ 
    trace("x is > 20"); 
} 
else if (x < 0) 
{ 
    trace("x is negative"); 
}

Als een instructie if of else wordt gevolgd door slechts één instructie, hoeft de instructie niet tussen accolades te staan. In de volgende code worden bijvoorbeeld geen accolades gebruikt:

if (x > 0) 
    trace("x is positive"); 
else if (x < 0)  
    trace("x is negative"); 
else 
    trace("x is 0");

Adobe geeft echter de aanbeveling dat u altijd accolades gebruikt. Onverwacht gedrag kan zich namelijk voordoen wanneer later instructies aan een voorwaardelijke instructie zonder accolades worden toegevoegd. In de volgende code neemt de waarde van positiveNums bijvoorbeeld met 1 toe of de voorwaarde nu wel of niet resulteert in true:

var x:int; 
var positiveNums:int = 0; 
 
if (x > 0) 
    trace("x is positive"); 
    positiveNums++; 
 
trace(positiveNums); // 1

switch

De instructie switch is nuttig als u verschillende uitvoeringspaden hebt die afhankelijk zijn van dezelfde voorwaardelijke expressie. Deze instructie biedt een zelfde soort functionaliteit als een lange reeks instructies if..else if achter elkaar, maar is beter leesbaar. In plaats van het testen van een voorwaarde op een Booleaanse waarde, evalueert de instructie switch een expressie en gebruikt het resultaat om te bepalen welk codeblok moet worden uitgevoerd. Codeblokken beginnen met een instructie case en eindigen met een instructie break. De volgende instructie switch resulteert bijvoorbeeld in de dag van de week, op basis van het dagnummer dat de methode Date.getDay() retourneert:

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