Variable (Informatik)
In der Informatik bezeichnet man als Variable einen Verweis auf ein Stück Speicher, in dem eine Information festgehalten werden kann. Diese Information kann aus dem Speicher ausgelesen werden, ebenso kann eine neue Information hineingeschrieben werden. Bei diesem Vorgang geht die alte Information verloren.
Eine Variable hat immer einen Namen, den so genannten Bezeichner (engl. identifier). Mit diesem Namen kann auf den Wert der Variablen zugegriffen werden.
In manchen Programmiersprachen haben Variablen feste Datentypen, die festlegen, wie viel Speicher für diese Variable zur Verfügung steht und welche Werte darin gespeichert werden dürfen. Zum Beispiel kann eine Variable vom Typ short
in C nur ganzzahlige Werte zwischen -32768 und 32768 annehmen.
Analogie
Man kann sich eine Variable wie eine beschriftete Box mit einem Inhalt vorstellen. Die Beschriftung ist hier der Bezeichner, der Inhalt ist der Wert.
Konkretes Beispiel: in meiner Küche steht eine Box mit der Beschriftung MEHL
. Wenn ich meine Freundin bitte, mir die Box mit der Beschriftung MEHL
zu geben, weiß sie, was ich will. Der Bezeichner dient also dazu, eine Variable eindeutig zu identifizieren.
Den Wert einer Variable kann man beliebig oft abfragen (Schatz, wie viel ist noch in der
- MEHL
-Dose?300 Gramm!
), verändern (indem man Mehl entnimmt oder hinzufügt) oder ganz löschen. Das Ergebnis einer Abfrage gibt dabei immer den aktuellen Wert einer Variablen zurück. Alte vorherigen Werte gehen beim Überschreiben verloren.
Der Bezeichner einer Variable hat nicht zwingend etwas mit dem Inhalt zu tun! In die MEHL
-Dose könnte ich auch Zucker, Linsen oder schmutzige Socken füllen! Der Wert einer Variablen wird ausschließlich von dem Programm festgelegt, in dem sie verwendet wird!
Der Bezeichner einer Variable sollte zu deren Wert passen. Genau so, wie ich von einer mit MEHL
beschrifteten Dose erwarte, dass sie Mehl enthält, erwarte ich von einer Variable namens vorname
, dass darin jemandes Vorname gespeichert wird. Dies gilt umso mehr, weil man in der Regel nicht alleine, sondern im Team an einem Programm arbeitet.
Kleine Anekdote: Als Jugendlicher wollte ich mal für einen Kuchen einen Zuckerguss aus Zitronensaft und Puderzucker anrühren. Das weiße Pulver in der mit "PUDERZUCKER" beschrifteten Dose war aber Kartoffelstärke. Moral: benenne deine Variablen und beschrifte deine Dosen so, dass andere sofort sehen oder wenigstens ahnen können, was darin ist.
Ähnlich wie die Datentypen hat auch meine MEHL
-Dose nur ein begrenztes Fassungsvermögen. Wenn ich versuchen würde, einen ganzen 50-kg-Sack Mehl hineinzukippen, würde die Dose überlaufen. Genau so bezeichnet man übrigens auch die Fehler, die passieren, wenn man einen zu großen Wert in einer Variable speichern möchte: Überlauf.
Verwendung
Variablen bilden die einfachste Form des "Gedächtnisses" eines Computerprogramms oder Algorithmus. Komplexere Daten, die mehrere Informationen umfassen, müssen mit Datenstrukturen gespeichert werden.
Deklaration
In vielen Programmiersprachen müssen Variablen deklariert werden, bevor sie verwendet werden können. Das heißt, dass ihr Name sowie gegebenenfalls ihr Datentyp oder Informationen über ihre Sichtbarkeit festgehalten werden müssen. Im AppInventor müssen Variablen mit den Blöcken global initialisieren
oder lokal initialisieren
deklariert werden und können nur dann verwendet werden, wenn diese Blöcke vorhanden sind.
In Sprachen wie Java deklariert man Variablen zum Beispiel so:
int x;
char y;
boolean z;
Das bedeutet: es werden drei Variablen x
, y
und z
angelegt. In x
darf nur eine ganze Zahl gespeichert werden, in y
nur ein Zeichen und in z
nur ein Wahrheitswert. Damit wird zugleich der nötige Speicher für diese Variablen reserviert: 4 Byte für den int
, 2 Byte für den char
und 1 Bit für den boolean
.
Durch die Pflicht zur Deklaration von Variablen kann bereits beim Kompilieren des Programms geprüft werden, ob alle verwendeten Variablen ganz sicher existieren und auch so verwendet werden dürfen, wie es im Programm steht.
Zuweisung und Abfrage
Den Wert einer Variable zu ändern, ist eine Anweisung, da hierdurch der Zustand des Programms verändert wird. Den Wert einer Variable abzufragen, ist hingegen ein Ausdruck, da ein Ergebnis zurückgeliefert wird. Wenn eine Variable einen neuen Wert zugewiesen bekommt, wird ihr alter Wert sofort überschrieben und ist nicht mehr abrufbar.
Visuelle Programmierung
In den visuellen Programmiersprachen werden für Anweisungen und Ausdrücke unterschiedlich geformte Blöcke verwendet. Darum wird auch anhand der Blockform zwischen Zuweisung und Abfrage unterschieden. In Scratch gibt es für die Zuweisung den Block setze [x v] auf ()
und für die Abfrage die ovalen Blöcke (x)
mit den Variablennamen.
Im AppInventor werden die Blöcke für die Zuweisung und für die Abfrage verwendet.
Textuelle Programmierung
In der textuellen Programmierung wird für jeden Zugriff auf die Variablen einfach nur ihr Name verwendet. Für eine Zuweisung wird dahinter in den meisten Sprachen ein einfaches Gleichheitszeichen gesetzt und dahinter der Wert, der der Variablen zugewiesen werden soll:
In der interaktiven Python-Kommandozeile kann man Variablen folgendermaßen abfragen und setzen:
>>> antwort = 42
>>> antwort
42
Zeile 1: Zuweisung – die Variable antwort
bekommt den Wert 42
zugewiesen.
Zeile 2: Abfrage – der Wert der Variablen antwort
wird abgerufen.
Zeile 3: Ergebnis – der Wert der Variablen antwort
wird ausgegeben.
x = y
In der Mathematik bedeutet die Aussage : Die Variablen und sind für immer gleich.
In der Informatik ist das anders. Die Anweisung Python code
bedeutet: Hole dir den Wert, der in der Variablen y
gespeichert ist, und speichere ihn in der Variable x
. Dies ist ein einmaliger Vorgang und hat insbesondere keine Auswirkung auf y
. Wenn y
in der Zukunft geändert wird, ändert x
sich nicht mit; umgekehrt gilt das genau so. Zwischen diesen beiden Variablen gibt es nun keine feste Verbindung, es gab nur eine einmalige Abfrage und eine einmalige Zuweisung.