Variablen aktualisieren
Oft berechnest du den neuen Wert einer Variablen aus ihrem aktuellen Wert. Ein Spieler sammelt eine Münze ein, und seine Punktzahl steigt um 10:
int punkte = 30;
punkte = punkte + 10;
std::cout << punkte << "\n";Das gibt aus:
40In der Mathematik ergäbe punkte = punkte + 10 keinen Sinn. In C++ bedeutet = aber „speichere“: Zuerst wird die rechte Seite mit dem aktuellen Wert berechnet (30 + 10), und dann wird das Ergebnis, 40, in punkte gespeichert. Der alte Wert wird überschrieben.
Programme tun das so oft, dass C++ dafür Kurzformen hat:
punkte += 10;bedeutet dasselbe wiepunkte = punkte + 10;punkte -= 10;bedeutetpunkte = punkte - 10;punkte *= 2;bedeutetpunkte = punkte * 2;punkte /= 2;bedeutetpunkte = punkte / 2;punkte++;addiert 1, undpunkte--;subtrahiert 1
int geld = 100;
geld -= 30; // du hast ein Buch gekauft
geld += 50; // du hast ein altes Spiel verkauft
geld *= 2; // Oma hat dein Erspartes verdoppelt
std::cout << "Geld: " << geld << " EUR\n";
int besuche = 0;
besuche++;
besuche++;
std::cout << "Besuche: " << besuche << "\n";Das gibt aus:
Geld: 240 EUR
Besuche: 2++ siehst du meistens in Schleifen, wo es 1, 2, 3 und so weiter zählt. Es steckt sogar im Namen der Sprache: C++ ist die Sprache C, um eins besser gemacht.
Typische Fehler:
punkte + 10;allein ändert die Variable nicht. Das Ergebnis wird berechnet und sofort weggeworfen, weil es niemand speichert. Das Programm lässt sich trotzdem kompilieren, du siehst also keinen Fehler, nur ein falsches Ergebnis.punkte =+ 10;, mit vertauschten Zeichen, lässt sich ebenfalls kompilieren, bedeutet aberpunkte = +10;: Es speichert 10 in der Variablen. Schreibe+=: das Plus vor dem Gleichheitszeichen, ohne Leerzeichen dazwischen.
So schreibst du es:
Anweisungen
- 1
Addiere unter dem ersten Kommentar mit
+=10 zupunkte. - 2
Nimm dem Spieler unter dem zweiten Kommentar mit
--ein Leben weg. - 3
Verdopple unter dem dritten Kommentar mit
*=die Punktzahl. Das Programm sollte dann ausgeben:Punkte: 100 Leben: 2