4.3 Operatoren
Mit Variablen alleine bewegt sich nicht viel. Sie benötigen zusätzliche Arbeitsmittel, um mit mehreren Variablen oder Werten arbeiten zu können. Genau dafür sind die Operatoren geeignet.
Arithmetische Operatoren
Arithmetische Operatoren dienen, wie der Name schon sagt, zum Rechnen. Entsprechend finden Sie hier die vier Grundrechenarten, Addition, Subtraktion, Multiplikation und Division. Dazu kommt der Modulo, um den Rest einer Division zu berechnen. Ein Beispiel:
var x_num:Number = 4, y_num:Number = 5; var erg_num:Number = x_num + y_num;
Die Variable erg_num hat den Wert 9.
Neben dieser Schreibweise gibt es Kurzformen, die die Rechnung mit dem Zuweisungsoperator kombinieren.
var x_num:Number = 4, y_num:Number = 5; x_num += y_num;
Hier erhält x_num den neuen Wert 9. Die zweite Zeile oben entspricht der folgenden Langversion:
x_num = x_num + y_num;
Noch kürzer geht es mit Inkrement (++) und Dekrement (--). Das Inkrement erhöht ihn Wert einer Variablen um 1, das Dekrement verringert ihn um 1:
var x_num:Number = 4; x_num++;
Nach diesen Zeilen hat x_num den Wert 5. Bei Inkrement und Dekrement ist allerdings entscheidend, ob der Operator vor oder nach der Variablen kommt. Steht er vor der Variablen, gilt der Operator für die aktuelle Zeile (bzw. Anweisung):
Bitweise Operatoren |
Eine Operatoren-Art verschweigen wir Ihnen hier bewusst: die bitweisen Operatoren. Sie sind den arithmetischen Operatoren ähnlich, im Gegensatz zu ihnen ändern sie allerdings einzelne Bits. Ein Bit ist die kleinste Einheit eines Computers, nämlich der Zustand 0 oder 1. Wir enthalten Ihnen diese Operatoren vor, da sie innerhalb von ActionScript praktisch nicht zum Einsatz kommen. |
var x_num:Number = 4, y_num:Number = 5; var erg_num:Number = x_num + ++y_num;
In diesem Beispiel erhält erg_num den Wert 10 und y_num den Wert 6.
Wenn der Operator nach der Variablen folgt, sehen die Zeilen so aus:
var x_num:Number = 4, y_num:Number = 5; var erg_num:Number = x_num + y_num++;
In diesem Fall trägt erg_num den Wert 9, y_num erhöht sich dagegen nach der zweiten Zeile (also nach der Anweisung) auf den Wert 6.
Tabelle 4.4 fasst alle arithmetischen Operatoren übersichtlich zusammen.
Vergleichsoperatoren
Wie der Name schon sagt, vergleichen diese Operatoren zwei Werte miteinander. Das Ergebnis ist immer ein Wahrheitswert (Boolean) und liefert entweder wahr (true) oder falsch (false). Das klingt einfach und ist es dankenswerterweise auch. Hier ein kleines Beispiel für Vergleichsoperatoren:
Fehlerquellen |
Im Unterschied zur Schulmathematik ist der Vergleichsoperator für Gleichheit nicht das einfache Ist-Gleich (=), sondern zwei Ist-Gleich-Zeichen hintereinander (==). Der Grund: Das einfache Ist-Gleich wurde für den Zuweisungsoperator reserviert. Visual Basic (auch .NET) ist übrigens eine der wenigen Programmiersprachen, die im Gegensatz zu ActionScript das einfache Ist-Gleich auch (!) für Vergleiche verwendet. |
1. | Zwei Variablen mit Werten, die dritte für das Ergebnis: |
var x_num:Number = 4, y_num:Number = 5, erg_boo:Boolean;
2. | Der Vergleich zwischen Variablen erfolgt mit einem Vergleichszeichen, das Sie sicher aus der Schule kennen: kleiner als (<). |
erg_boo = x_num < y_num;
Welches Ergebnis erhalten Sie? In diesem Fall true, da 4 wirklich kleiner als 5 ist. Möchten Sie ein Ergebnis nachprüfen, geben Sie im letzten Schritt das Ergebnis aus:
trace(erg_boo);
»Kleiner als« ist nur eines der möglichen Vergleichsmittel in ActionScript. Tabelle 4.4 zeigt die übrigen Operatoren.
Operator | Beispiel | Beschreibung |
+ |
2 + 3 ergibt 5 |
Addition von Zahlen oder Verbindung von Strings. |
++ |
2++ ergibt 3 |
Zählt um 1 nach oben. Wird auch als Inkrement bezeichnet und häufig bei Zählern eingesetzt (siehe »Schleifen«). |
+= |
var x_num:Number = 4; x_num += 5; ergibt x_num gleich 9 |
Addition zum aktuellen Wert der Variablen. Das Ergebnis wird der Variablen wieder zugewiesen. |
- |
3 – 2 ergibt 1 |
Subtraktion von Zahlen. Negative Zahlen erhalten ebenfalls ein Minuszeichen vorangestellt. |
-- |
3-- ergibt 2 |
Zählt um 1 nach unten. Wird auch als Dekrement bezeichnet und bei Zählern eingesetzt (siehe »Schleifen«). |
-= |
var x_num:Number = 5; x_num -= 4; ergibt x_num gleich 1 |
Subtraktion vom aktuellen Wert der Variablen. Das Ergebnis wird der Variablen wieder zugewiesen. |
* |
2 * 3 ergibt 6 |
Multiplikation von Zahlen. Wird bei Angabe ohne Klammern immer vor Addition und Subtraktion ausgeführt (»Punkt vor Strich«). |
*= |
var x_num:Number = 5; x_num *= 4; ergibt x_num gleich 20 |
Multiplikation mit aktuellem Wert der Variablen. Das Ergebnis wird der Variablen wieder zugewiesen. |
/ |
4 / 2 ergibt 2 |
Division von Zahlen |
/= |
var x_num:Number = 10; x_num /= 2; ergibt x_num gleich 5 |
Aktueller Wert der Variablen wird dividiert. Das Ergebnis wird der Variablen wieder zugewiesen. |
% |
3 / 2 ergibt 1 |
Ganzzahliger Rest einer Division wird angegeben. Dieser ganzzahlige Rest heißt auch Modulo. |
%= |
var x_num:Number = 10; x_num %= 3; ergibt x_num gleich 1 |
Aktueller Wert der Variablen wird dividiert. Modulo wird als Ergebnis zurückgegeben und der Variablen wieder zugewiesen. |
Tabelle 4.4 Arithmetische Operatoren in ActionScript
Die einfachen Vergleiche von Zahlen sind nicht die einzige praktische Anwendung. Sie verwenden Vergleiche unter anderem, um zu überprüfen, ob Variablen und MovieClip-Instanzen existieren. Wir zeigen Ihnen außerdem Beispiele, die per Vergleich Nutzereingaben testen. Auch ActionScript-Animationen sind ohne Vergleichsoperatoren (und alle anderen Operatoren) nicht denkbar.
Logische Operatoren
Operator | Beispiel | Beschreibung |
== |
2 == 3 ergibt false |
Ist-Gleich: Überprüft, ob zwei Werte gleich sind. |
> |
2 > 3 ergibt false |
Größer als: Überprüft, ob der erste Wert größer als der zweite ist. |
>= |
2 >= 3 ergibt false 4 >= 4 ergibt true |
Größer gleich: Überprüft, ob der erste Wert größer oder gleich dem zweiten ist. |
< |
2 < 3 ergibt true |
Kleiner als: Überprüft, ob der erste Wert kleiner als der zweite ist. |
<= |
2 <= 3 ergibt true 4 <= 4 ergibt true |
Kleiner gleich: Überprüft, ob der erste Wert kleiner oder gleich dem zweiten ist. |
!= |
2 != 3 ergibt true |
Ungleich: Überprüft, ob zwei Werte ungleich sind. |
Tabelle 4.5 Vergleichsoperatoren in ActionScript
Logik klingt nach einem eher wissenschaftlichen Thema oder einem philosophischen Teilgebiet. Aber so schlimm ist es nicht: Logische Operatoren verknüpfen Wahrheitswerte. Und wie Sie aus dem letzten Abschnitt wissen, sind Wahrheitswerte das Ergebnis von Vergleichen. Folgerichtig können Sie mit logischen Operatoren auch Vergleiche verknüpfen; dies ist in der Praxis die häufigste Anwendung.
1. | Mit logischen Operatoren arbeiten Sie folgendermaßen: Zuerst instanziieren Sie zwei Variablen mit Zahlen und deklarieren eine dritte für das Ergebnis: |
var x_num:Number = 4, y_num:Number = 5, erg_boo:Boolean;
2. | Nun verknüpfen Sie zwei Vergleiche mit dem logischen UND (&&). Das logische UND ergibt immer dann true, wenn beide Seiten (Operanden) true liefern: |
erg_boo = (x_num < y_num) && (x_num != 3;)
Das Ergebnis ist in diesem Fall true, da beide Vergleiche true liefern. Variieren Sie diese Zeile ein wenig, bekommen Sie schnell false:
erg_boo = (x_num < y_num) && (x_num != 4);
In dieser Code-Zeile ist x_num zwar kleiner als y_num, der zweite Vergleich liefert aber false, da die instanziierte Variable x_num 4 ist, und hier aber behauptet wird, sie sei ungleich 4. Die Klammern sind übrigens nicht unbedingt notwendig, da immer zuerst die Vergleichsoperationen, erst dann die logischen Operationen durchgeführt werden. Sie erhöhen allerdings die Übersicht ungemein. Tabelle 4.6 gibt einen Überblick über alle logischen Operatoren.
Sprachgebrauch |
Vorsicht, im allgemeinen Sprachgebrauch steht »oder« meist für »entweder – oder«. Zweimal true wäre aus dieser Sicht falsch; das logische ODER dagegen akzeptiert zweimal true als true. |
Operator | Beispiel | Beschreibung |
&& |
(2 < 3) && (3 < 4) ergibt true |
Logisches UND. Ergibt nur true, wenn beide Vergleiche true liefern. |
|| |
(2 < 3) || (3 > 4) ergibt true |
Logisches ODER. Ergibt true, wenn nur einer der Vergleiche true liefert. Sobald dieser Fall eintritt, wird die Überprüfung beendet, da das Ergebnis true schon feststeht. |
! |
!(2 == 3) ergibt true |
Logisches NICHT. Ändert das Ergebnis des Vergleichs in das Gegenteil. Aus true wird false, aus false wird true. |
Tabelle 4.6 Logische Operatoren
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.