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