Java Reference
In-Depth Information
(F6) so weit aus, bis die Variable zahl den Wert 127 erreicht hat. Beim nächsten Durch-
lauf müsste die Variable den Wert 128 erreichen. Führen Sie das Programm weiter aus,
so werden Sie feststellen, dass nicht der Wert 128, sondern -128 als nächster Wert ange-
zeigt wird ( Abbildung 4.37 ).
Abbildung 4.37 Variable-Ansicht mit Zahlenüberlauf der Variablen »zahl«
Da die Variable zahl nie den Wert 128 erreicht, wird die while -Schleife auch nie verlassen
und der darunter platzierte Ausgabebefehl mit System.out.println wird nie ausgeführt.
Wie kann dieser Effekt, dass die Variable zahl beim Addieren von 1 vom Wert 127 zum
Wert -128 springt, erklärt werden? Die Variable zahl ist vom primitiven Datentyp byte .
In Tabelle 2.2 ist als Wertebereich -128 bis 127 angegeben. Erhöht man den Wert einer
ganzzahligen Variablen, die den größten Wert ihres Wertebereichs erreicht hat um 1, so
nimmt die Variable den kleinsten Wert des Wertebereichs an. Dieser Effekt wird auch als
Zahlenüberlauf bezeichnet. Sie sollten also immer genau prüfen, ob der Wertebereich
eines Datentyps für die betreffende Anwendung ausreicht. Ist das nicht der Fall, kann
das leicht zu unerwarteten Effekten führen.
Verlassen Sie nun die Debug-Perspektive, und kehren Sie mit der Java-Schaltfläche in
der rechten oberen Ecke des Eclipse-Fensters zur Java-Perspektive zurück. Um den Feh-
ler zu beheben, ändern Sie den Datentyp der Variablen zahl von byte in int , und das
Programm wird, wie erwartet, mit der Ausgabe der Variablen zeichensatz beendet. In
dieser Variablen sind die Zeichen mit den Zeichencodes zwischen 30 und 128 hinterein-
ander abgelegt.
Dieser kleine Ausflug in die Debug-Perspektive sollte Ihnen neben typischen Program-
mierfehlern auch ein hervorragendes Instrument zur schrittweisen Verfolgung von
Programmabläufen näherbringen. Es rechtfertigt seinen Einsatz nicht nur, wenn Pro-
grammfehler aufzuspüren sind, sondern auch, wenn Sie sich über eine Programmlogik
nicht ganz im Klaren sind und diese nachvollziehen möchten.
 
Search WWH ::




Custom Search