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