Villkorliga satser
ActionScript 3.0 innehåller tre grundläggande villkorliga satser som du använder för att styra programflödet.
if..else
Med den villkorliga programsatsen if..else kan du testa ett villkor och sedan köra ett kodblock om villkoret är uppfyllt eller köra ett annat kodblock om villkoret inte är uppfyllt. Exempel: I följande kod testas om värdet för x överstiger 20, skapas en trace()-funktion om så är fallet eller skapas en annan trace()-funktion om så inte är fallet:
if (x > 20)
{
trace("x is > 20");
}
else
{
trace("x is <= 20");
}
Om du inte vill köra ett alternativt kodblock kan du använda programsatsen if utan programsatsen else.
if..else if
Du kan testa mer än ett villkor med hjälp av den villkorliga programsatsen if..else if. I följande kod testas inte enbart om värdet för x överstiger 20 utan även om värdet för x är negativt:
if (x > 20)
{
trace("x is > 20");
}
else if (x < 0)
{
trace("x is negative");
}
Om en if- eller else-programsats följs av endast en programsats behöver den inte sättas inom klammerparentes. I koden nedan används till exempel inga klammerparenteser:
if (x > 0)
trace("x is positive");
else if (x < 0)
trace("x is negative");
else
trace("x is 0");
Du bör emellertid alltid använda klammerparenteser, eftersom ett oväntat beteende kan uppstå om programsatser senare läggs till i en villkorlig programsats som saknar klammerparenteser. I följande kod ökas värdet för positiveNums med 1 vare sig villkoret utvärderas till true eller inte:
var x:int;
var positiveNums:int = 0;
if (x > 0)
trace("x is positive");
positiveNums++;
trace(positiveNums); // 1
switch
Använd programsatsen switch om du har flera körningssökvägar som är beroende av samma villkorliga uttryck. Programsatsen fungerar på ungefär samma sätt som en lång serie av if..else if-element, men den är lite lättare att läsa. I stället för att testa ett villkor för ett booleskt värde utvärderar programsatsen switch ett uttryck och använder resultatet för att bestämma vilket kodblock som ska köras. Kodblock börjar med en case-programsats och slutar med en break-programsats. Exempel: Följande switch-programsats skriver ut veckodag baserat på dagnumret som returnerats av metoden 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;
}