Java Reference
In-Depth Information
int ergebnis = a+b*c;
System.out.println("a+b*c=" + ergebnis);
ergebnis = (a+b)*c;
System.out.print("(a+b)*c=" + ergebnis);
Listing 2.10 Text und Zahlenwert mit + verknüpft
Sie können den Quellcode noch weiter verkürzen, indem Sie die Berechnung auch noch
in die System.out.println -Anweisung integrieren.
Aber Achtung! Komplexe Ausdrücke bergen die Gefahr, dass man den Überblick über
die Art und Weise, wie der Compiler Ausdrücke auswertet, verliert. Testen Sie folgenden
Quellcode:
inta=2;
intb=3;
intc=5;
System.out.println("a+b*c="+a+b*c);
System.out.println("(a+b)*c="+(a+b)*c);
Listing 2.11 Fehlerhafter Verkürzungsversuch
Das Programm liefert die in Abbildung 2.16 angezeigte Ausgabe.
Abbildung 2.16 Fehlerhafte Ergebnisausgabe
Das Programm scheint falsch zu rechnen! Weshalb liefert die erste Berechnung nicht
den Wert 17? Die Antwort gibt ein genaues Nachvollziehen der Vorgehensweise des
Compilers. Alle Informationen, die Sie dazu brauchen, haben Sie in diesem Kapitel
erhalten. Die Frage ist, wie wird der Ausdruck
"a+b*c="+a+b*c
vom Compiler ausgewertet?
Der Ausdruck enthält drei Operatoren. Ein Blick auf die Prioritäten in Tabelle 2.9 bestätigt,
dass wie in der Mathematik die Multiplikation (Priorität 2) vor der Addition (Priorität 3)
auszuführen ist. Es gilt, je kleiner der Zahlenwert der Priorität, desto höher ist die Priorität
der Operation. Zuerst wird also die Multiplikation b*c mit dem Ergebnis 15 ausgeführt.
Bleiben noch zwei + -Operationen auszuführen. Da beide die gleiche Priorität haben,
 
Search WWH ::




Custom Search