Kontrollstrukturen

Kontrollstrukturen dienen zur Ablaufsteuerung eines Programms. Es ist möglich, einzelne Programmteile in Abhängigkeit von bestimmten Bedingungen auszuführen, oder Anweisungsblöcke beliebig oft zu wiederholen.

If-Anweisung
Bei einer If-Anweisung wird anhand einer Bedingung entschieden, ob die nachfolgenden Anweisungen ausgeführt werden oder nicht. Die Bedingung steht in normalen Klammern nach dem Schlüsselwort //if// und muss vom Typ boolean sein. Hier könnte man also direkt einen Wahrheitswert hineinschreiben, z.B. **true** - das wäre allerdings wenig sinnvoll, da nicht veränderbar. Üblicherweise steht hier ein Ausdruck, der zuerst ausgerechnet wird, und dann einen Wahrheitswert ergibt, z.B. ein Vergleich: if(i>=5){...} __Syntax:__ code format="actionscript" if(Bedingung) {  Anweisung/en; } code

If-else-Anweisung
Die if-else-Anweisung hat im Unterschied zur if-Anweisung noch einen zweiten Anweisungsblock, der genau dann ausgeführt wird wenn die Bedingung der If-Anweisung false ist. Da else soviel bedeutet wie "ansonsten" gibt es hier logischerweise keine Bedingung - falls das if (wenn) nicht zutrifft, dann muss das else (sonst) zutreffen. __Syntax:__ code format="actionscript" if(Bedingung) {  Anweisung/en; } else {  Anweisung/en; } code

If-else-if-Anweisung
Bei der If-else-if-Anweisung ist es möglich für mehrere Bedingungen Anweisungen bereitzustellen. Im Unterschied zur If-else-Anweisung, bei der nur eine Bedingung entweder true oder false sein kann, erlaubt das else-if das testen weiterer Bedingungen und damit die Unterscheidung von mehr als zwei Fällen (Mehrfachverzweigung). __Syntax:__ code format="actionscript" if(Bedingung) {  Anweisung/en; } else if(Bedingung) //diese Bedingung wird nur dann geprüft, wenn die Bedingung des if false war {  Anweisung/en; } else if(Bedingung) //zu dieser Bedingung kommt man nur, wenn alle vorhergehenden false waren {  Anweisung/en; } // beliebig viele else if Blöcke else //nur wenn keine der vorhergehenden Bedingungen zutraf, wird das else ausgeführt {  Anweisung/en; } code Beispiel: code format="actionscript" if(note == 6) // die Variable note muss existieren, also zuvor deklariert worden sein {  var ergebnis:String=“sehr gut“; } else if(note == 5) {  var ergebnis:String=“gut“; } else if(note == 4) {  var ergebnis:String=“befriedigend“; } else {  var ergebnis:String=“durchgefallen“; } trace("Prüfungsresultat: "+ergebnis); code

While-Schleife
Eine Schleife ermöglicht es, einen Anweisungsblock wiederholt auszuführen. Im Prinzip funktioniert sie genau wie eine if-Anweisung, nur dass nach der Abarbeitung des Codeblocks alles wieder von vorne anfängt - so lange, bis die einleitende Bedingung irgendwann //false// ist. Im Codeblock kann beliebiger Code stehen, meist werden hier auch bestimmte Variablen für den nächsten Durchlauf verändert. Bei einer While-Schleife wird zuerst die Bedingung geprüft. Ist diese Bedingung false, wird der Anweisungsblock innerhalb der Schleife übersprungen, ist die Bedingung allerdings true, wird der Anweisungsblock ausgeführt. In diesem Anweisungsblock werden dann üblicherweise eine oder mehrer Variablen verändert, die Einfluss auf die Bedingung der While-Schleife haben. Solche Variablen nennt man Schleifen- oder Zählvariablen und meistens werden sie im Anweisungsblock inkrementiert (i++) oder dekrementiert (i--). Danach wird die Bedingung der Schleife erneut geprüft, und wenn diese immer noch true ist, wird der Anweisungsblock ein weiteres Mal ausgeführt ... Es ist wichtig darauf zu achten, das die Bedingung einer Schleife irgendwann false sein muss, da man sonst eine so genannte Endlosschleife (infinite loop) erzeugt, die den Computer zum Absturz bringen kann. __Syntax:__ code format="actionscript" while(Bedingung) {  Anweisung/en; } code Beispiel: code format="actionscript" var i:Number = 0; while(i < 10) {  trace(i); i++; //das ist eine Kurzform für i = i + 1; } //Ergebnis: 0 1 2 3 4 5 6 7 8 9 code

For-Schleife
Die For-Schleife entspricht der Funktion der While-Schleife, ist syntaktisch aber übersichtlicher. Bei der For-Schleife wird im Kopf der Schleife die Zählvariable deklariert, die Bedingung geprüft und die Zählvariable verändert (z.B. inkrementiert/ dekrementiert). Das sieht etwas komplizierter aus als in der while-Schleife, ist aber im praktischen Umgang oft einfacher, da man nicht so leicht etwas vergisst. Die For-Schleife eignet sich besonders für Fälle, bei denen die Anzahl der Schleifendurchläufe von vorn herein feststeht. __Syntax:__ code format="actionscript" for(Zählvariable; Bedingung; Veränderung) {  Anweisung/en; } code Beispiel: code format="actionscript" for(var i:Number = 0; i < 10; i++) {  trace(i); } //Ergebnis: 0 1 2 3 4 5 6 7 8 9 code

Vertiefung

Switch-Case-Anweisung
Die Switch-Case-Anweisung ist eine Alternative zur If-else-if-Anweisung. Sie ermöglicht ebenfalls Mehrfachverzweigungen, wobei die Syntax wesentlich übersichtlicher ist. Jeder Anweisungsblock sollte mit einer break-Anweisung abgeschlossen sein, damit die switch-Anweisung nicht unnötig durchlaufen wird, falls bereits eine Übereinstimmung mit dem case-Wert aufgetreten ist. Der default-Block wird ausgeführt, falls keiner der case-Werte zutrifft und kann auch weggelassen werden. __Syntax:__ code format="actionscript" switch(Bedingung) {  case wert: Anweisung/en; break; case wert: Anweisung/en; break; //beliebig viele case "Blöcke" [default:] [Anweisung/en;] } code Beispiel: code format="actionscript" switch(note) // die Variable note muss existieren, also zuvor deklariert worden sein {  case 6: var ergebnis:String=“sehr gut“; break; case 5: var ergebnis:String=“gut“; break; case 4: var ergebnis:String=“befriedigend“; break; default: var ergebnis:String=“durchgefallen“; } code

Do-While-Schleife
Der Unterschied zwischen While-Schleife und Do-While-Schleife besteht darin, dass bei einer Do-While-Schleife der Anweisungsblock zuerst ausgeführt wird, bevor die Bedingung geprüft wird. Ist die Bedingung dann true, wird der Block erneut ausgeführt. Daraus folgt, dass der Anweisungsblock einer Do-While-Schleife auf jeden Fall einmal ausgeführt wird, egal ob die Bedingung am Ende true oder false ist. Eine Do-While-Schleife bezeichnet man auch als Endgeprüfte Schleife. Beispiel: code format="actionscript" var i:Number=20; do {  trace(i); i++; } while(i<10); // Ergebnis: 20 code

For-in-Schleife
Die For-in-Schleife bietet eine einfache Möglichkeit, alle Elemente eines Arrays, eines Objekts oder alle Variablen und Instanzen einer Filmsequenz zu durchlaufen. __Syntax:__ code format="actionscript" for(Iterationvariable in Objekt) {  Anweisung/en; } code

Break-Anweisung
Diese Anweisung bietet die Möglichkeit eine Schleife vorzeitig zu beenden. Sie kann innerhalb von While-, Do-while-, For-, und For-in-Schleifen oder der Switch-Anweisung verwendet werden.

Continue-Anweisung
Wie die Break-Anweisung kann auch die Continue-Anweisung innerhalb von While-, Do-while-, For-, und For-in-Schleifen oder der Switch-Anweisung verwendet werden. Allerdings wird mit Continue nicht die gesamte Schleife sondern nur der aktuelle Schleifendruchlauf abgebrochen. Nach einer Continue-Anweisung springt der Interpreter zur Bedingung der Schleife und setzt die Durchführung fort.

Alternative Einführung in Kontrollstrukturen (AS2, deutsch)

 * http://www.learning-how.to/actionscript/Bedingungen/content-docs/01-bedingung.php