Variablen in der Programmierung einfach erklärt
Eine Variable macht einen Wert unter einem Namen verfügbar. In imperativen Programmen kann eine Zuweisung den zugehörigen Wert verändern. Dabei wird zuerst die rechte Seite berechnet und erst danach das Ergebnis unter dem Namen links gespeichert.
Auf dieser Seite lernst du, Variablen anzulegen, Zuweisungen Schritt für Schritt auszuwerten und typische Fehler zu vermeiden.
Hake ab, was du schon kannst — und komm am Ende hierher zurück!
Was eine Variable ist
Ein Programm verarbeitet Werte wie 25, 3.5, true oder "Hallo". Eine Variable gibt einem solchen Wert einen Namen. Dadurch kann das Programm den Wert später lesen und – je nach Programmiersprache und Programmierweise – verändern.
Variable
Eine Variable ist ein Name, über den ein Programm auf einen Wert oder ein Datenobjekt zugreift. Manche Sprachen beschreiben sie vereinfacht als benannten Speicherplatz. Das genaue Modell hängt von der Programmiersprache ab.
Das Kistenmodell hilft beim Einstieg: Auf der Kiste steht ein Name, in ihr liegt ein Wert. Es hat aber Grenzen. Bei einer Referenzvariable führt der Name nicht unmittelbar zum eigentlichen Objekt, sondern zu einer Referenz darauf.
Nach alter = 30 ist der Name alter mit dem Wert 30 verbunden. Die spätere Zuweisung alter = 31 ersetzt diesen Wert. Der Name bleibt gleich, sein Zustand ändert sich.
Eine Konstante unterscheidet sich davon: Ihr einmal festgelegter Wert soll beziehungsweise darf nicht erneut zugewiesen werden. In Java kennzeichnet zum Beispiel final int MAX_PUNKTE = 100; eine Konstante.
Wie eine Zuweisung den Zustand verändert
Das Zeichen = ist in vielen Programmiersprachen ein Zuweisungsoperator. Es bedeutet nicht dasselbe wie das Gleichheitszeichen in der Mathematik.
Bei x = x + 1 gehst du in dieser Reihenfolge vor:
- Lies rechts den aktuellen Wert von
x. - Addiere
1. - Speichere das Ergebnis als neuen Wert von
x.
Bei einer Zuweisung gilt: rechts lesen und berechnen, dann links speichern.
Der Variablenzustand zeigt, welcher Name gerade welchen Wert besitzt. Eine mögliche Kurzschreibweise ist {preis -> 100; rabatt -> 0}.
Ausgangszustand: {preis -> 0; rabatt -> 0; steuersatz -> 19}
Anweisungen:
preis = 100rabatt = preis * 0.05preis = preis - rabatt
Auswertung:
preiswird auf100gesetzt.- Der aktuelle Preis wird gelesen:
100 * 0.05 = 5. Also erhältrabattden Wert5. - Rechts wird mit den aktuellen Werten gerechnet:
100 - 5 = 95. Danach erhältpreisden Wert95.
Endzustand: {preis -> 95; rabatt -> 5; steuersatz -> 19}
Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.
Bei punkte = punkte + 3 wird zuerst der Wert von punkte gelesen. Dann wird der Ausdruck auf der Seite berechnet. Das Ergebnis wird anschließend unter dem Namen auf der Seite gespeichert.
Deklaration, Initialisierung und Datentyp
In statisch typisierten Sprachen wie Java wird eine Variable meist ausdrücklich deklariert. Dabei werden ihr Datentyp und Name gegeben.
Deklaration
Eine Deklaration führt eine Variable mit Namen und Datentyp ein. Das Java-Beispiel int anzahl; deklariert die Variable anzahl.
Die Initialisierung ist die erste Zuweisung eines Wertes. int anzahl = 5; verbindet Deklaration und Initialisierung in einer Anweisung. Später kann anzahl = 6; einen neuen Wert zuweisen, ohne die Variable erneut zu deklarieren.
Der Datentyp legt fest, welche Werte und Operationen zulässig sind. Häufige Java-Typen sind:
| Typ | Beispielwert | Bedeutung |
|---|---|---|
int | 42 | ganze Zahl |
double | 3.5 | Gleitkommazahl |
boolean | true | Wahrheitswert |
char | 'A' | einzelnes Zeichen |
String | "Hallo" | Text; in Java ein Referenztyp |
Java ist statisch typisiert: Der Typ einer Variable wird bei der Deklaration festgelegt. In dynamisch typisierten Sprachen wie Python oder JavaScript wird der Typ eines Wertes zur Laufzeit bestimmt; ein Name kann dort nacheinander mit Werten verschiedener Typen verbunden sein.
Initialisiere Variablen möglichst vor ihrer ersten Verwendung. So besitzt die Variable einen definierten Anfangswert, und Fehler durch einen fehlenden oder ungeeigneten Wert werden vermieden.
Wo eine Variable sichtbar ist
Der Geltungsbereich, auch Scope genannt, ist der Programmabschnitt, in dem eine Variable sichtbar und nutzbar ist.
Lokale und globale Variable
Eine lokale Variable gehört zu einem begrenzten Block oder einer Funktion. Eine globale Variable ist in einem wesentlich größeren Bereich des Programms erreichbar.
Lokale Variablen helfen dir, Zusammenhänge überschaubar zu halten. Gleichnamige Variablen in anderen Bereichen müssen nicht dieselbe Variable sein. Ein lokaler Name kann außerdem einen gleichnamigen globalen Namen verdecken.
Globale Variablen wirken bequem, weil viele Programmteile direkt auf sie zugreifen können. Genau das kann aber Fehler verursachen: Verschiedene Stellen können denselben Wert unbemerkt verändern. Halte den Geltungsbereich deshalb möglichst eng.
Die Lebensdauer ist nicht dasselbe wie der Scope. Sie bezeichnet den Zeitraum, in dem der benötigte Speicher existiert. Eine lokale Variable wird gewöhnlich bei einem Funktionsaufruf neu angelegt und beim Verlassen der Funktion wieder entfernt. Einzelne Sprachkonstrukte können davon abweichen.
Auch der Name sollte seine Aufgabe zeigen. anzahlSchueler ist meist verständlicher als a. Mehrteilige Java-Namen werden üblicherweise in camelCase geschrieben.
Werte verfolgen und sicher tauschen
Eine Zuweisung kopiert bei einfachen Werten den Wert, der zu diesem Zeitpunkt rechts gelesen wird.
Nach first = 7 und second = first besitzen beide Namen den Wert 7. Wird danach first = 9 ausgeführt, bleibt second bei 7. Die spätere Änderung von first führt die frühere Zuweisung nicht erneut aus.
Bei Referenzvariablen kann die Situation anders wirken: Zwei Variablen können auf dasselbe Objekt verweisen. Dann kann eine Änderung am Objekt über beide Referenzen sichtbar sein. Das ist von einer neuen Zuweisung an einen der Namen zu unterscheiden.
Beim Tauschen zweier Werte darfst du den ersten Wert nicht zu früh überschreiben.
Ausgangszustand: {preis1 -> 44; preis2 -> 12}
Mit einer Hilfsvariable:
hilf = preis1preis1 = preis2preis2 = hilf
Nach Schritt 1 bewahrt hilf den alten Wert 44. Schritt 2 setzt preis1 auf 12. Schritt 3 übernimmt den geretteten Wert in preis2.
Endzustand: {preis1 -> 12; preis2 -> 44; hilf -> 44}
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- Variable
- verbindet einen Namen mit einem Wert oder Datenobjekt
- besitzt je nach Sprache einen Datentyp
- ist nur in ihrem Scope sichtbar
- Zuweisung
- liest und berechnet zuerst die rechte Seite
- speichert danach das Ergebnis links
- verändert den Variablenzustand
- Sicher programmieren
- früh initialisieren
- verständliche Namen wählen
- Geltungsbereich eng halten
- Zwischenwerte vor dem Überschreiben sichern
Abschluss-Check
Wenn du den Abschluss-Check erklären kannst, beherrschst du das zentrale Ablaufmuster: Zustand lesen, rechte Seite berechnen, links speichern und den neuen Zustand prüfen.
Mit Google fortfahren