Variablen ändern
Oft berechnest du den neuen Wert einer Variablen aus ihrem aktuellen. Ein Spieler sammelt eine Münze ein, und sein Punktestand steigt um 10:
int punkte = 30;
punkte = punkte + 10;
printf("%d\n", punkte);Das gibt Folgendes aus:
40In der Mathematik würde punkte = punkte + 10 keinen Sinn ergeben. 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 machen das so oft, dass C dafür Abkürzungen hat:
punkte += 10;bedeutet dasselbe wiepunkte = punkte + 10;punkte -= 10;bedeutetpunkte = punkte - 10;punkte *= 2;bedeutetpunkte = punkte * 2;punkte /= 2;bedeutetpunkte = punkte / 2;(bei einemintist das eine Ganzzahldivision)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
printf("Geld: %d €\n", geld);
int besuche = 0;
besuche++;
besuche++;
printf("Besuche: %d\n", besuche);Das gibt Folgendes aus:
Geld: 240 €
Besuche: 2++ wirst du oft in Schleifen sehen, wo es 1, 2, 3 und so weiter zählt.
Typische Fehler, die der Compiler auf dieser Seite nicht aufhält, sodass du nur ein falsches Ergebnis siehst:
punkte + 10;allein ändert die Variable nicht. Das Ergebnis wird berechnet und sofort weggeworfen, weil es nichts speichert.punkte =+ 10;, mit vertauschten Zeichen, bedeutetpunkte = +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 Punkte. Das Programm soll dann Folgendes ausgeben:Punkte: 100 Leben: 2