Variablen in der Programmierung einfach erklärt
Du lernst, wie Variablen Werte speichern, wie du diese Werte änderst und wo du sie im Programm verwenden darfst.
Kurz gesagt
Eine Variable ist wie ein benannter Behälter für einen Wert. Speicherst du einen neuen Wert, ersetzt er den bisherigen. Der Name bleibt dabei gleich.
Ein Programm besteht aus Anweisungen für einen Computer. Eine Programmiersprache legt fest, wie du solche Anweisungen schreibst. Die geschriebenen Anweisungen heißen Code. Hier übst du mit kurzen Codeausschnitten in der Programmiersprache Java.
Deine Lernziele
Eine Variable kannst du dir wie einen Behälter mit einem Namen vorstellen. Darin liegt ein Wert, zum Beispiel eine Zahl. Das Behälterbild hilft beim Verstehen; es beschreibt nicht den genauen Aufbau im Computer.
Über den Namen kann das Programm den gespeicherten Wert lesen. Beim Lesen bleibt der Wert erhalten. Durch eine Zuweisung speichert das Programm einen Wert in der Variablen. Ein neuer Wert ersetzt dabei den bisherigen Wert. Der Name bleibt gleich. Die Variable sammelt also keine früheren Werte an.
Variable
Eine Variable speichert einen Wert unter einem Namen. Ihr gespeicherter Wert kann sich durch eine Zuweisung ändern.
Beispiel: Ein Vorrat an Keksen (ausgedachtes Beispiel)
- 1Die Variable „kekse“ enthält den Wert 5.
- 2Das Programm weist der Variablen den Wert 2 zu.
- 3Danach heißt die Variable weiterhin „kekse“ und enthält den Wert 2.
- 4Wenn das Programm diesen Wert liest, bleibt 2 gespeichert.
Teste dich
Die folgenden Java-Zeilen sind kurze Ausschnitte aus einem Programm. Wir betrachten Variablen innerhalb eines Blocks. Ein Block fasst Anweisungen zusammen und wird von den geschweiften Klammern { und } umschlossen. Eine innerhalb eines solchen Blocks angelegte Variable nennen wir hier lokal.
Bei der Deklaration gibst du den Namen und den Datentyp einer Variablen an. Der Datentyp legt fest, welche Werte sie speichern darf. int ist in Java ein Datentyp für ganze Zahlen innerhalb eines festgelegten Zahlenbereichs. In „int stifte;“ ist „stifte“ der Name. Das Zeichen ; beendet die Anweisung.
Das Zeichen = bedeutet in diesen Java-Anweisungen Zuweisung: Der Wert rechts wird in der Variablen links gespeichert. Die erste Zuweisung eines Wertes heißt Initialisierung. Jede weitere Zuweisung ersetzt den bisherigen Wert. Deklaration und Initialisierung können auch zusammenstehen, etwa in „int becher = 4;“.
Eine lokale Java-Variable bekommt bei einer Deklaration ohne Zuweisung keinen automatischen Startwert. Du musst ihr einen Wert zuweisen, bevor du ihren Wert liest oder damit rechnest.
Initialisierung
Die Initialisierung ist die erste Zuweisung eines Wertes an eine Variable.
| Java-Anweisung | Begriff | Wirkung |
|---|---|---|
| int stifte; | Deklaration | Name und Datentyp werden angegeben; ein Startwert fehlt noch. |
| stifte = 6; | Initialisierung | Die Variable erhält ihren ersten Wert: 6. |
| stifte = 9; | Spätere Zuweisung | Der Wert 9 ersetzt den bisherigen Wert 6. |
Merke: Eine Deklaration ohne Wert ist noch keine Initialisierung. In Java braucht eine lokale Variable vor dem Lesen eine Wertzuweisung.
Teste dich
Führe die gezeigten Anweisungen von oben nach unten aus. Notiere nach jeder Zuweisung den aktuellen Wert. Aktuell bedeutet: der Wert, der jetzt gespeichert ist. In unseren Rechenbeispielen liegen alle Werte und Rechenergebnisse im erlaubten Zahlenbereich von int.
Bei einer Zuweisung berechnest du zuerst die rechte Seite. Steht dort der Name einer Variablen, setzt du ihren bisherigen Wert ein. Anschließend speicherst du das Ergebnis in der Variablen links vom Zeichen =. Das Zeichen = fordert hier eine Speicherung; es ist keine mathematische Gleichheitsaussage.
In unserem Java-Code bedeutet + Plus, - Minus und * Mal. Bei „zahl = zahl * 2;“ wird der bisherige Wert von „zahl“ mit 2 multipliziert, also mal 2 gerechnet. Passt das Ergebnis in den erlaubten Zahlenbereich von int, ersetzt es den bisherigen Wert und verdoppelt ihn.
Steht rechts direkt eine Zahl, etwa bei „zahl = 5;“, ersetzt diese Zahl den bisherigen Wert. Der bisherige Wert wird dabei nicht dazugerechnet.
Beispiel: Eine Anzahl von Marken verändern (ausgedachtes Beispiel)
- 1int marken = 7;
- 2Nach dieser Anweisung enthält „marken“ den Wert 7.
- 3marken = marken * 2;
- 4Rechts wird 7 mal 2 gerechnet. Danach enthält „marken“ den Wert 14.
- 5marken = marken - 3;
- 6Rechts wird 14 minus 3 gerechnet. Danach enthält „marken“ den Wert 11.
Merke: Erst rechts mit dem bisherigen Wert rechnen, dann das Ergebnis links speichern. Für die nächste Anweisung zählt der neue Wert.
Teste dich
Der Datentyp bestimmt in Java, welche Werte eine Variable enthalten darf und welche Rechenschritte mit ihr erlaubt sind. Eine Variable vom Typ int kann ganze Zahlen in ihrem erlaubten Zahlenbereich speichern. Die ganze Zahl 11 passt dazu. Ein Text wie „morgen“ und eine Kommazahl wie 2,5 passen nicht als gespeicherte Werte zu int. Die Regeln für Datentypen hängen von der Programmiersprache ab.
Der Gültigkeitsbereich beschreibt, in welchem Teil des Programms du einen Namen verwenden kannst. Bei einer lokalen Java-Variablen beginnt er an ihrer Deklaration und reicht bis zum Ende ihres Blocks. Auch darin liegende Blöcke gehören dazu. Nach dem Ende ihres Blocks kannst du die Variable nicht mehr über diesen Namen nutzen. Innerhalb dieses Bereichs darfst du keine zweite lokale Java-Variable mit demselben Namen anlegen.
Zum Vergleich betrachten wir C++, eine andere Programmiersprache. Bei einer dort als global deklarierten Variablen reicht der Gültigkeitsbereich von ihrer Deklaration bis zum Ende derselben Datei. Eine Datei ist hier ein gespeicherter Teil des Programms. Ob ihr Name auch in anderen Dateien nutzbar ist, hängt von weiteren Regeln ab. „Global“ bedeutet hier also keine uneingeschränkte Nutzung überall. Diese Aussage über globale Variablen gilt für C++; wir übertragen sie nicht auf Java.
Gültigkeitsbereich
Der Gültigkeitsbereich ist der Teil eines Programms, in dem ein Name verwendet werden kann.
| Fall | Wo ist der Name nutzbar? |
|---|---|
| Lokale Java-Variable | Ab ihrer Deklaration im eigenen Block und in darin liegenden Blöcken. |
| Globale C++-Variable | Ab ihrer Deklaration bis zum Ende derselben Datei; für andere Dateien gelten weitere Regeln. |
Teste dich
Alles auf einen Blick
Variable (Programmierung)
Eine Variable hat einen Namen und speichert einen aktuellen Wert.
In unseren Java-Beispielen gibt die Deklaration Name und Datentyp an; die Initialisierung weist den ersten Wert zu.
Eine spätere Zuweisung ersetzt den bisherigen Wert und lässt den Namen gleich.
Berechne zuerst die rechte Seite mit den bisherigen Werten und speichere dann das Ergebnis links.
In Java bestimmt der Datentyp die erlaubten Werte; der Gültigkeitsbereich bestimmt, wo ein Name nutzbar ist.
Eine Punktzahl berechnen (ausgedachtes Beispiel)
- 1int punkte = 4;
- 2Die Variable „punkte“ wird deklariert und mit dem ersten Wert 4 initialisiert.
- 3punkte = punkte + 5;
- 4Rechts wird 4 plus 5 gerechnet. Danach enthält „punkte“ den Wert 9.
- 5punkte = punkte * 2;
- 6Jetzt wird mit dem aktuellen Wert 9 gerechnet: 9 mal 2 ergibt 18. Am Ende enthält „punkte“ den Wert 18.
Fehler finden
Fehler in Zeile 3Der neue Wert wurde fälschlich zum bisherigen Wert addiert. Die Zuweisung ersetzt den bisherigen Wert. Richtig: Nach „tickets = 4;“ enthält „tickets“ den Wert 4.
Lückentext
Die Variable „rest“ enthält 6. Nach einer Zuweisung des Wertes 2 enthält sie . In einem Java-Block steht zuerst „int farben;“ und danach „farben = 3;“. Die zweite Anweisung ist die . Eine lokale Java-Variable wurde in einem Block angelegt. Ihr Name ist nach dem Ende dieses Blocks .