Einfache Berechnung in java?
Hi,
ich habe folgende Aufgabe, die ich zu lösen habe. Erst stell ich die Aufgabe, dann meine Lösung vor.
Aufgabe:Welcher Wert ist in der Variable a nach der Ausführung dieser Anweisungen gespeichert?
int a = 2;
int b = 14;
a *= b++ % 3;
b = -b + (a*7);
Meine Lösung:
Für a:
a = 14 % 3; => 14 : 3 = 4 R 2
= a * (b++ % 3) = 2 * 2
a = 4
Für b:
b = -14 + (4*7)
b = -14 + 28
b = 14
ABER:
Wenn ich Java diese Berechnung eingebe, kommt folgendes bei raus....
Das kann doch nicht sein...
Was bedeutet übrigens das "++" ??
Danke für Hilfe!
2 Antworten
Das kann doch nicht sein...
Doch, Kann es
Was bedeutet übrigens das "++" ??
Dein Fehler liegt genau an dem ++ und dass du die Bedeutung nicht kennst.
i++ inkrementiert den Wert der Variable i um 1, nachdem das Statement ausgeführt wurde.
Beispiel:
i = 1
j = i++
Das ist äquivalent zu:
i = 1
j = i
i += 1
Somit ist jetzt i = 2 und j = 1
Andersrum gibt es auch ++i, das den Wert von i vor der Ausführung des staremenrs um 1 erhöht
i = 1
j = ++i
Das ist äquivalent zu:
i = 1
i += 1
j = i
Somit ist i = 2 und j = 2
In deinem Fall, den Code auseinandergezogen und kommentiert;
int a = 2;
int b = 14;
a *= b++ % 3;
//entspricht a *= b % 3; b += 1;
//entspricht a *= 14 % 3; b += 1;
//entspricht a *= 2; b += 1;
//entspricht a = a * 2; b += 1;
//entspricht a = 2 * 2; b += 1;
// => a = 4, b = 15
b = -b + (a*7);
//entspricht b = -15 + 4*7
//entspricht b = -15 + 28
// => a = 4, b = 13
Das ++ erhöht den Wert um 1. Daran liegt es vlt.