• Guten Start ins Wintersemester 2024/2025

Selbsttestaufgabe 10-1

Unser Sponsor SAP 4 Students
Unser Sponsor
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.
 
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.

Danke!

Hallo,

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
 
Danke 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...
 
Danke 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...

Ja 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.
 
Verstehe 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++
 
Sorry, 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?
 
sorry, 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?

Also 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
 
hä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?
 
Dr Franke Ghostwriter
Eine Frage hä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?

Post- 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;

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...
 

Weiter lesen

Oben