Homepage-Webhilfe Event-Banner

Bedingungen

Mit Bedingungen ist es möglich, Abfragen durchzuführen und somit auf sogenannte Fälle abzuprüfen (Fallunterscheidung). Wir können also damit Rückgabewerte von Funktionen oder Werte von Variablen prüfen und darauf individuell reagieren. AS bietet hier die einfache Verzweigung mittels if und die mehrfache Verzweigung mittels switch-case an.


Einfache Verzweigungen (einfache Abfragen) werden durch das Schlüsselwort if gekennzeichnet. Nach dem Schlüsselwort wird in runden Klammern die Bedingung (zur Erinnerung: es muss sich dabei um einen Wert vom Typ Boolean handeln) notiert. Anschließend wird ein Block angegeben, welcher nur ausgeführt wird, wenn die Bedingung zutrifft.

if (a == b)
{
    // Anweisungen wenn der Fall zutrifft
}

Natürlich ist es auch möglich, darauf zu reagieren, wenn die Bedingung nicht zutrifft. So ist es neben der Verwendung des NOT-Operators (z. B. !benutzerAngemeldet) zum „Wechseln“ des Boolean-Werts (aus !true wird false und aus !false wird true) auch möglich, beide Fälle (Bedingung trifft zu und Bedingung trifft nicht zu) abzuprüfen. Hierzu notieren wir nach dem if-Block das Schlüsselwort else mit einem weiteren Block.

if (a == b)
{
    // Anweisungen wenn der Fall zutrifft
}
else
{
    // Anweisungen wenn der Fall nicht zutrifft
}

Sowohl innerhalb des if-Blocks als auch des else-Blocks können weitere Verzweigungen folgen:

if (a == b)
{
    // Anweisungen wenn der Fall zutrifft
}
else
{
    if (c == d)
    {
        // Anweisungen wenn der Fall zutrifft
    }
    else
    {
        // Anweisungen wenn der Fall nicht zutrifft
    }
}

Eine verkürzte Schreibweise für weitere Verzweigungen im else-Block können mittels else if erreicht werden. Das obige Beispiel mit Verwendung von else if sieht dann wie folgt aus:

if (a == b)
{
    // Anweisungen wenn der 1. Fall zutrifft
}
else if (c == d)
{
    // Anweisungen wenn der 2. Fall zutrifft
}
else
{
    // Anweisungen wenn beide Fälle nicht zutreffen
}

Des Weiteren ist es möglich, das geschweifte Klammernpaar wegzulassen, sofern sich innerhalb einer der Blöcke nur eine auszuführende Anweisung befindet. Das folgende Beispiel zeigt die Überprüfung von zwei Variablen, bei welcher je nach Wert eine bestimmte Meldung ausgegeben wird:

var a:int = 12;
var b:int = 7;

if (a > b)
	trace("a ist größer als b");
else if (a == b)
	trace("a ist gleich b");
else
	trace("a ist kleiner als b");

Ausgabe:

a ist größer als b
Download

Wie auch in vielen anderen Programmiersprachen, ist es möglich, eine In-Line-Abfrage mittels if-else durchzuführen. Vorteil dieser Variante ist, dass diese wesentlich kürzer ist, jedoch muss darauf geachtet werden, dass diese Variante nur in bestimmten Fällen verwendet kann: Sowohl der if-Zweig als auch der else-Zweig müssen einen Wert zurückgeben. Dieser Wert kann von einem Funktionsaufruf zurückgegeben worden sein oder auch von einer anderen Variablen sowie einer Konstante kommen. Die In-Line-Verzweigung kann dann einer anderen Funktion übergeben oder einer Variablen zugewiesen werden. Zum Syntax: Zuerst wird die Bedingung angegeben, anschließend ein Fragezeichen ? gefolgt von dem Wert, wenn die Bedingung zutrifft, einem Doppelpunkt : und dem Wert, wenn die Bedingung nicht zutrifft. Hierzu als erstes folgendes „ausführliches“ Beispiel:

if (a == b)
    c = "Wert gleich";
else
    c = "Wert ungleich"

In der In-Line-Variante sieht das obige Beispiel dann wie folgt aus:

c = (a == b) ? "Wert gleich" : "Wert ungleich";

Mehrfache Verzweigungen werden mittels des Schlüsselworts switch gekenzeichnet. Dafür wird in dem folgenden runden Klammernpaar der zu überprüfende Wert angegeben (keine Bedingung!).

switch (a)
{
    
}

Die einzelnen Fälle werden nun mit dem Schlüsselwort case gekennzeichnet. Danach folgt der Wert, welcher mit dem Wert von oben (siehe switch) verglichen werden soll. Zum Schluss folgt noch ein Doppelpunkt :. Nun können wir den auszuführenden Code notieren. Dabei ist die Verwendung eines Blocks mit geschweiften Klammern nicht notwendig. Um den case-Block zu beenden und dem Compiler damit mitzuteilen, dass wir am Ende der Anweisungen für diesen case-Block sind, benötigen wir das Schlüsselwort break mit darauffolgendem Semikolon ;.

case 1:
    // Anweisungen welche ausgeführt werden sollen
    break;

Von den case-Blöcken können wir selbstverständlich mehrere notieren. Wollen wir zusätzlich den Fall abprüfen, dass keine der Bedingungen zutrifft, so können wir den default-Block verwenden:

default:
    // Anweisungen welche ausgeführt werden sollen
    break;

Hier nun folgendes vollwertiges Beispiel einer Verzweigung mittels switch-case:

switch ((new Date()).month + 1)
{
	case 1:
		trace("Januar");
		break;
	case 2:
		trace("Februar");
		break;
	case 3:
		trace("März");
		break;
	case 4:
		trace("April");
		break;
	case 5:
		trace("Mai");
		break;
	case 6:
		trace("Juni");
		break;
	case 7:
		trace("Juli");
		break;
	case 8:
		trace("August");
		break;
	case 9:
		trace("September");
		break;
	case 10:
		trace("Oktober");
		break;
	case 11:
		trace("November");
		break;
	case 12:
		trace("Dezember");
		break;
}

Ausgabe:

August
Download

Wichtig: Mit der switch-case-Verzweigung werden lediglich einzelne Werte überprüft. Komplexe Abfragen mit mehreren Variablen oder Wertebereichen werden daher mit if-Verzweigungen gelöst.

Übrigens: Jeder Code einer switch-case-Verzweigung könnte sich mittels einer if-else-Verzweigung ersetzen lassen. Auch wenn die switch-case-Verzweigung einen längeren Code erzeugt, ist diese wesentlich übersichtlicher und gilt für solche Fälle als besserer Programmierstil.

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK