ActionScript 3.0 umfasst drei Bedingungsanweisungen, mit denen Sie den Programmablauf steuern können.
if..else
Mit der Bedingungsanweisung
if..else
können Sie eine Bedingung testen und dann in Abhängigkeit davon, ob die Bedingung erfüllt ist, unterschiedliche Codeblocks ausführen. Im folgenden Beispielcode wird getestet, ob der Wert von
x
größer ist als 20. Ist dies der Fall, wird eine
trace()
-Funktion generiert. Andernfalls wird eine andere
trace()
-Funktion generiert:
if (x > 20)
{
trace("x is > 20");
}
else
{
trace("x is <= 20");
}
Wenn kein alternativer Codeblock ausgeführt werden soll, können Sie die Anweisung
if
auch ohne die Anweisung
else
verwenden.
if..else if
Mit der Bedingungsanweisung
if..else if
lassen sich mehrere Bedingungen überprüfen. Im folgenden Beispielcode wird getestet, ob der Wert
x
größer ist als 20 und ob
x
einen negativen Wert hat:
if (x > 20)
{
trace("x is > 20");
}
else if (x < 0)
{
trace("x is negative");
}
Wenn einer
if
- oder
else
-Anweisung nur eine Anweisung folgt, muss die Anweisung nicht in geschweifte Klammern eingeschlossen werden. Im folgenden Code werden beispielsweise keine geschweiften Klammern verwendet:
if (x > 0)
trace("x is positive");
else if (x < 0)
trace("x is negative");
else
trace("x is 0");
Dennoch sollten Sie stets geschweifte Klammern verwenden, da andernfalls ein unerwartetes Verhalten auftreten kann, wenn später Anweisungen zu einer Bedingungsanweisung hinzugefügt werden, die keine geschweiften Klammern enthält. Im folgenden Beispielcode wird Wert von
positiveNums
um 1 erhöht, unabhängig davon, ob die Bedingung als
true
ausgewertet wird:
var x:int;
var positiveNums:int = 0;
if (x > 0)
trace("x is positive");
positiveNums++;
trace(positiveNums); // 1
switch
Die
switch
-Anweisung eignet sich insbesondere dann, wenn mehrere Ausführungspfade vom gleichen Bedingungsausdruck abhängen. Sie bietet eine ähnliche Funktionalität wie eine lange Folge von
if..else if
-Anweisungen, die Lesbarkeit ist jedoch besser. Anstatt eine Bedingung auf einen booleschen Wert zu testen, wertet die
switch
-Anweisung einen Ausdruck aus und ermittelt den auszuführenden Codeblock anhand des Ergebnisses. Codeblöcke beginnen mit einer
case
-Anweisung und enden mit einer
break
-Anweisung. In der folgenden
switch
-Anweisung wird anhand der von der
Date.getDay()
-Methode zurückgegebenen Zahl der entsprechende Wochentag ausgegeben:
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;
}
|
|
|