Selbsttestaufgabe 10-1
Hallo,
ich hätte eine kleine Frage zur Selbsttestaufgabe 10-1.
Musterlösung:
n = x- + -x++;
Meine Frage: Stehen die beiden Minusse für Postdekrement und Prädekrement? Ansonsten kann ich mir das Ergebnis von n == 1 nicht erklären. Was mich zweifeln lässt, ist die Einführung der Operatoren auf Seite 82 in KE 2. Da wurden die beiden Operatoren als --op und op-- eingeführt. In Sekundärliteratur habe ich die beiden Operatoren jedoch auch als -op und op- gefunden.
Comments
SilviaS
Contributions on this page: 3
View profileHallo,
Also zum einen ist diese Aufgabe in der Errata mit etwas ausführlicherer Lösung enthalten.
Das x-- ist ein Postdekrement. Das zweite (einfache) Minus ist lediglich ein negatives Vorzeichen.
Beantwortet das deine Frage?
Es gibt sehr wohl die Operatoren --x und x--, es gibt aber natürlich ebenso
-x.
Was hast du denn in was für Sekundärliteratur gefunden?
Viele Grüße,
Silvia
Heath
Contributions on this page: 3
View profileDanke für den Hinweis mit dem Errata. Hatte nur in der mitgelieferten Errata geschaut. Online gibt es ja noch eine. :)
Die Sekundärliteratur ist "Das Handbuch der Java Progammierung". Mir scheint es aber so, dass die da doch zwei Minusse gemeint haben, haben aber nur ein Minus gemacht, dafür ein bisschen länger...
Susi-MX3
Contributions on this page: 1
View profileDiese Frage wurde in den News sehr gut erklärt, hat mir sehr geholfen...
Gruß
Susi-MX3
SilviaS
Contributions on this page: 3
View profileJa sowas passiert bei manchen Schrifttypen leider. Wenn da irgendwas in Richtung Prä-/Postinkrement steht, dann wird es schon das sein. Evtl könnte man auch mal in der html-Fassung des Buches nachschauen, vielleicht lässt es sich da besser erkennen, wenn es das Buch von Krüger ist.
Die Online-Errata wird auch permanent aktualisiert und die Aktualisierung wird auch in der Newsgroup bekannt gegeben.
Joey26
Contributions on this page: 2
View profileVerstehe es ehrlich gesagt nicht so ganz... x++ bedeutet doch, dass der Wert der Variablen VOR der Erhöhung geliefert wird.
Dann ist bei x=1 doch n= x-- + -x++
Joey26
Contributions on this page: 2
View profileSorry, zu früh abgeschickt...
n= 1 (vor abziehen) + -(0) (nach abziehen aber vor hochzählen)
also ist n==1 aber warum ist x jetzt 1 und nicht 0? wird dann doch der wert nach dem hochzählen genommen?
SilviaS
Contributions on this page: 3
View profileAlso deine Berechnung für n passt.
Und während dieser Berechnung wird x zuerst um 1 verringert und dann wieder um 1 erhöht, hat also danach den gleichen Wert wie vorher, also 1.
Und natürlich muss der Wert nach dem Hochzählen genommen werden, sonst wäre ja das x++ auch sinnlos. Ich hoffe das hilft.
Viele Grüße,
Silvia
Heath
Contributions on this page: 3
View profilehätte ich jetzt doch noch dazu, nachdem ich die letzten Posts gelesen habe.
Müsste nicht in jedem der drei Beispiele x == 1 sein, weil überhaupt keine Zuweisung zur Variablen x stattfindet? Oder geht es darum überhaupt nicht, sondern darum, wie groß die Variable x wäre, wenn man sie jetzt zu sich selbst zuweisen würde?
ceepeebee
Contributions on this page: 1
View profilePost- und Präinkrement, sowie Post- und Prädekrement verändern den Wert der entsprechenden Variable. Einer weiteren Zuweisung bedarf es gerade nicht.
[CODE]
int a = 1;
int b = 1;
int c = a++; // c = 1; a = 2; b = 1;
int d = --b; // d = 0; a = 2; b = 0;
[/CODE]
Würde man zum Schluss z.B. über System.out.println(a); den Wert von a ausgeben, wäre das "2". Kann man auch einfach mal in BlueJ ausprobieren und ein wenig damit rumspielen...