Java Reference
In-Depth Information
14.5.5 Anmerkungen
Zwei kritische Besonderheiten müssen an dieser Stelle angemerkt werden. Die eine betrifft die Di-
vision bzw. Restbildung, die andere den Wertebereichüberlauf.
Was passiert eigentlich, wenn bei der Division bzw. Restbildung die Auswertung des zweiten Ope-
randen den Wert 0 ergibt? Wir wissen ja aus der Schule, dass eine Division durch 0 nicht erlaubt
ist. Wenn Sie den Hamster in eine derartige Situation bringen, reagiert er genauso, wie wenn Sie ihn
mittels des Befehls vor(); einfach gegen eine Mauer laufen lassen würden: Der Hamster ist derart
von Ihnen enttäuscht, dass er keine weiteren Befehle mehr von Ihnen entgegennimmt. Bei der Divi-
sion durch 0 handelt es sich nämlich um eine weitere Möglichkeit, einen Laufzeitfehler zu erzeugen.
Vermeiden Sie dies, indem Sie vorher entsprechende Abfragen durchführen (siehe Abschnitt 14.7).
Den anderen kritischen Fall werden Sie wahrscheinlich nie erleben. Er tritt recht selten auf, sei aber
der Vollständigkeit halber hier erwähnt. Schauen Sie sich folgendes Beispiel an:
int i = 2147483647;
i=i+1;
Wir haben in Abschnitt 14.2 gelernt, dass der Wertebereich für int-Werte auf den Bereich der Gan-
zen Zahlen zwischen
2 31 und 2 31
1 bzw. -2147483648 und 2147483647 beschränkt ist. In dem
Beispiel wird in der ersten Zeile der int-Variablen i der maximale Wert des Wertebereichs zugewie-
sen. Durch die Addition würde der Wertebereich eigentlich verlassen. Der Hamster ignoriert diese
Tatsache jedoch einfach. Sobald der Wertebereich in eine Richtung - nach oben oder nach unten -
verlassen wird, begibt er sich einfach ans andere Ende der Skala und rechnet dort weiter, d.h. nach
Ausführung der Anweisung i=i+1; enthält die int-Variable i den Wert -2147483648. Den
Grund für dieses Phänomen können Sie in Kapitel 4.4.1 nachlesen.
In Kapitel 13.1 wurde erwähnt, dass ein Grund für die Einführung von Datentypen ( boolean , int )
die Tatsache ist, dass der Compiler wissen muss, wie viel Speicherplatz er für eine Variable von ei-
nem gewissen Typ zu reservieren hat. Ein zweiter Grund müsste Ihnen nun eigentlich klar geworden
sein: Dadurch dass Variablen von einem bestimmten Typ sein müssen, kann der Compiler feststel-
len, ob Operationen, in denen Variablennamen auftreten, überhaupt einen Sinn ergeben, und er kann
Sie durch entsprechende Fehlermeldungen auf „unsinnige“ Operationen aufmerksam machen:
int var1 = 4711;
boolean var2 = true;
int var3 = var1 * var2; // Fehler, ungueltige Multiplikation
int var4 = vornFrei();
// Fehler, ungueltige Zuweisung
14.6 Alternative Zuweisungsoperatoren
Sehr gebräuchlich ist die Verwendung der folgenden abkürzenden Schreibweisen für bestimmte Ty-
pen von Zuweisungen.
Sei i eine int-Variable und ausdruck ein beliebiger arithmetischer Ausdruck. Dann gilt ( <=> steht
für semantische Äquivalenz):
Search WWH ::




Custom Search