André Wippich schrieb:
> Was ich gerne fragen wollte ist, wie es sich mit komplexeren Rechnungen
> verhält.
Ich denke deine eigentliche Frage ist noch nicht wirklich beantwortet.
Auch ein komplexere Berechnung ist letztenendes ja nur eine Abfolge von
einfachen Operationen. Nur ist halt das Ergebnis einer Operation
wiederrum Operand für die nächste Operation.
Und in allen Stufen wird erneut entschieden: linker Operand, rechter
Operand, wie wird die Operation implementiert.
d.h. die Berechnung
int a = 5, b = 8;
double c;
c = 8.0 + b * a;
laut den Rechenregeln, wird so gerechnet
b * a -> Zwischenergebnis
|
|
+---> + 8.0
b ist ein int, a ist ein int. Also erfolgt da eine int Multiplikation.
Das Ergebnis davon ist wieder int.
Also ist Zwischenergebnis vom Datentyp int.
Um dieses mit 8.0 (einem double) zu addieren, wird dieses
Zwischenergebnis zu einem double umgeformt und die Addition
durchgeführt. Das Ergebnis hat dann ebenfalls Datentyp double und muss
nicht weiter behandelt werden um an c zugewiesen zu werden.
Also immer einfach nur den Rechenregeln folgen: In welcher Reihenfolge
wird ausgewertet, welche Datentypen sind beteiligt, welche Datentypen
entstehen für die Zwischenergebnisse, was passiert mit den ZwischenErg.
weiter?
So kannst du jeden Ausdruck analysieren.