Ausgabe unklar

chho0013

Mitglied
Java:
int u=1;
		int v=3*u++ + 1;
		int w=7*--u;
		v-=-v-v--;
		
		System.out.println("u:" + u + " v:" + v + " w:" + w);   wieso ist v= 12 und nicht 11; wegendem--?
		w=(3*--v)%(2*u++ +1)+3;
		v/=w++;
		System.out.println("u:" + u + " v:" + v + " w:" + w);
 
Zuletzt bearbeitet von einem Moderator:
> wegendem--?

bisschen einfach bei geschätzt 170 Rechenoperationen in einer Zeile,
entweder du verstehst sie gar nicht, dann akzeptiere das Ergebnis, oder schreibe Schritt für Schritt auf, wie du dir die Auswertung vorstellst
"vor Zeile 4 ist v = .."
"dann wird zunächst einmal -v-v zu .. in einem temporären Wert t1 abgelegt"
"dann .. "
"dann .. "
"dann kurz vor Ende t45 = .. und t985 = .. zu t986 = .. zusammengerechnet, dann noch -- drauf und deshalb .. "

sofern du eine Erklärung hast, kann man diese ja bei Fehlern korrigieren

-----

du darfst auch anderes testen, einfach mal
int x = v--;
anschauen usw., hilft beim Verständnis,
nicht nur den einen großen Block und rätseln
 
Der Code ist echt genial.

Ich hoffe du möchtest mit dem Code nur irgendetwas üben und nicht wirklich einsetzten.

Schaun wir uns deinen Code langsam an.

u=1; hier ist noch alles Klar.

Code:
v= 3*u++ + 1 //

3*1 +1= 4   v hat also den Wert vier. was ist aber mit dem u++ 
u++ ist das Postincrement. hiest der Wert wird erst nach dem lesen erhöht also hat u jetzt 2;

int w=7*--u;
hier haben wir das PreIncrement das hiest u ist jetzt wieder 1 und w = 7*1 = 7

jetzt die geilste Zeile:

 v-=-v-v--;
v-= -4-4 --; das -- können wir weglassen das hat keine Bedeutung, da das Postdecrement erst dann zum Tragen kommt wenn die Berechnung bereits abgeschlossen ist.
allso steht hier 
v-=-8
v hat den wert 4 und minus und minus ergibt inder Mathematik + also 4+8 = 12
 
Zuletzt bearbeitet:

Zurück
Oben