Variablen
Am Ende des letzten Kapitels hast du fünf fast identische Blöcke abgetippt, um fünf Münzen zu platzieren. Das war mühsam. Das erste Werkzeug gegen solche Mühsal ist die Variable.
Eine Variable ist ein benannter Speicherplatz. Sie hat einen Bezeichner (einen Namen) und einen Datentyp, der festlegt, welche Werte sie aufnehmen kann.
Deklarieren und zuweisen
int a;ist eine Deklaration: Sie legt die Variableavom Typintan.a = 12;ist eine Wertzuweisung: Sie schreibt den Wert 12 in die Variable.- Beides zusammen geht auch in einer Zeile:
int a = 12; - Das Zeichen
=bedeutet nicht „ist gleich“, sondern „bekommt den Wert“. Es wird immer von rechts nach links gelesen.
Ein Bild für die Variable
Stell dir eine Variable als ein beschriftetes Whiteboard vor, auf dem genau ein Wert Platz hat. Eine Wertzuweisung wischt den alten Wert weg und schreibt den neuen hin.
Mit diesem Bild löst du die nächste Aufgabe.
Sage ohne Rechner voraus, was ausgegeben wird. Erkläre besonders die dritte Zeile.
Auflösung
Ausgegeben wird 38.
Die Zeile a = a + 1; ist als Gleichung gelesen unsinnig – keine Zahl ist um eins größer als sie selbst. Als Zuweisung gelesen ergibt sie Sinn:
- Zuerst wird die rechte Seite ausgerechnet: Der aktuelle Wert von
aist 37, plus 1 ergibt 38. - Dann wird dieses Ergebnis in
ageschrieben. Der alte Wert 37 wird überschrieben.
Abkürzungen
| Kurzform | Bedeutung |
|---|---|
a += 7 |
a = a + 7 |
a -= 7 |
a = a - 7 |
a *= 2 |
a = a * 2 |
a++ |
a = a + 1 |
a-- |
a = a - 1 |
Gute Bezeichner
Regeln, die Java erzwingt:
- Ein Bezeichner beginnt mit einem Buchstaben und enthält keine Leerzeichen.
- Groß- und Kleinschreibung wird unterschieden:
alterundAltersind zwei verschiedene Variablen.
Regeln, die guter Stil erzwingt:
- Der Name sagt, was drin steht:
anzahlSchuelerstattx. - Variablen beginnen klein, weitere Wörter groß:
mittlereNote. Das nennt man Binnenmajuskel oder camelCase.
Beurteile die folgenden Bezeichner. Welche sind in Java überhaupt erlaubt, welche davon sind gute Namen?
x · AnzahlSchueler · anzahl schueler · anzahlSchueler · a1 · summeDerNoten · 2teZahl
Auflösung
| Bezeichner | erlaubt? | guter Name? |
|---|---|---|
x |
ja | nur als Koordinate; sonst nichtssagend |
AnzahlSchueler |
ja | erlaubt, aber unüblich – der Großbuchstabe am Anfang ist Klassen vorbehalten |
anzahl schueler |
nein – Leerzeichen | – |
anzahlSchueler |
ja | ja, so macht man es |
a1 |
ja | nichtssagend |
summeDerNoten |
ja | ja |
2teZahl |
nein – beginnt mit einer Ziffer | – |
Variablen in der Grafik
Jetzt lösen wir das Problem vom Ende des letzten Kapitels – zumindest halb.
a) Ändere nur die Zahl hinter abstand und beobachte, was passiert.
b) Erkläre, was durch die Variablen besser geworden ist – und was immer noch stört.
Auflösung zu b)
Besser: Der Abstand steht nur noch an einer Stelle. Willst du ihn ändern, änderst du eine Zahl statt fünf.
Stört noch: Für jede weitere Münze musst du weiterhin vier Zeilen abtippen. Variablen lösen das Problem der mehrfach genannten Werte, nicht das Problem der mehrfach geschriebenen Anweisungen. Dafür brauchst du Schleifen – Kapitel 3.
Aufgabe: Kreisberechnung
Schreibe ein Programm, das zu einem Radius den Umfang und den Flächeninhalt eines Kreises berechnet und ausgibt.
Der Radius soll in einer Variablen stehen, sodass sich das Programm mit einer einzigen Änderung auf einen anderen Kreis umstellen lässt.
Tipp: Woher bekomme ich Pi?
Java kennt die Kreiszahl bereits: Math.PI. Du musst sie nicht selbst abtippen.
Zusatzaufgabe: Tauschen
Zwei Variablen a und b enthalten Zahlen. Schreibe die Anweisungen, die ihre Werte vertauschen – am Ende soll in a stehen, was vorher in b stand, und umgekehrt.
Zwei Zeilen genügen nicht. Probiere zuerst a = b; b = a; aus und erkläre, warum das schiefgeht.
Tipp
Denk an das Whiteboard: Sobald du den neuen Wert auf a schreibst, ist der alte weg. Du brauchst vorher einen Platz, wo du ihn zwischenlagerst.