Variablen
Wir haben in unserem ersten Programm schon einige Begrifflichkeiten aus der Programmierwelt kennen gelernt.
Nun widmen wir uns den Variablen.
Wie wir gesehen haben, erweisen sich Variablen als äußerst nützlich. Sie sind ein Art Platzhalter für Werte, die sich verändern können. Wenn wir Programmieren wollen wir so wenig absolute Werte wie möglich.
Zunächst muss eine Variable deklariert werden. Das bedeutet man sagt dem Programm „Hey, es gibt hier eine Variable, die heißt ’soundso‘ und besitzt Zahlen (oder etwas anderes) als Werte“. Das macht man indem man beispielsweise
int x;
schreibt.
Nun hat man dem Programm gesagt, es gibt eine Variable mit Namen x, die Integer-Werte, also ganze Zahlen enthält, das heißt sie ist vom Typ Integer. Noch ist diese Variable leer, das heißt sie hat keinen Inhalt, aber das Programm hat Speicherplatz dafür bereit gelegt.
Es gibt eine handvoll primitiver Datentypen.
Typen von Variablen
Im Zentrum einer Programmiersprache stehen meist acht einfache (primitive) Datentypen. Einfach heißt in diesem Zusammenhang, dass es sich um normale Binärwerte handelt und nicht um Objekte im Sinne der Objektorientierung.
Typ | Beschreibung | Wertebereich | Breite in Bits | |
---|---|---|---|---|
byte | ganze Zahlen | -128 | 127 | 8 |
short | ganze Zahlen | -32.768 | 32.767 | 16 |
int | ganze Zahlen | -2.147.483.648 | 2.147.483.647 | 32 |
long | ganze Zahlen | -9.223.372.036.854.775.808 | -9.223.372.036.854.775.807 | 64 |
float | Gleitkommazahlen einfacher Genauigkeit; | 1.7e-308 | 1.7e+308 | 32 |
double | Gleitkommazahlen doppelter Genauigkeit | 3.4e-38 | 3.4e+38 | 64 |
(mEe ist computer notation for m times 10 to the e power) | ||||
boolean | Werte, die wahr (true) oder falsch (false) sein können | true, 1 | false, 0 | 8 |
char | Zeichen, Buchstaben, Unicode | 0 | 65.536 | 16 |
(Schildt 2004, p 58-65)
Ein besonderer Datentyp und nicht zu den einfachen Datentypen zählende Typ ist String. Man beachte, dass dieser groß geschrieben wird und stellt eine Zeichenkette dar.
Zuweisungen
Wenn man Speicherplatz angelegt hat, also eine Variable deklariert hat, muss dieser auch mit einem Wert befüllt werden – es wird der Variable ein Wert zugewiesen und die Variable somit initialisiert.
x = 1;
Das Zuweisen erfolgt mit einem =-Zeichen.
Beachte: Das =-Zeichen unterscheidet sich von dem in der Mathematik. In der Mathematik drückt man damit aus, dass auf beiden Seiten derselbe Wert steht, in der Programmierung weist man den rechten Wert der Variable (links) zu. Das kann man sich auch mithilfe einer Schachtel vorstellen. Zunächst beschriftet man eine leere Schachtel mit einem beliebigen Namen und sagt in dich lege ich nur Zeichenketten (Strings). Dieser Vorgang gleicht dem Deklarieren einer Variable. Die Schachtel ist nun da und belegt in meinem Kasten Platz, obwohl sie noch leer ist. Danach lege ich ein Schriftstück hinein. Dieser Vorgang gleicht dem Zuweisen eines Wertes der Variabel (, der beim ersten Mal initialisieren heißt).
Generell gilt, dass Variablennamen klein geschrieben werden und jeden beliebigen Namen tragen kann, außer von Processing oder Java reservierte Bezeichnungen wie null, int, true, false, … Es empfiehlt sich außerdem Variablennamen zu verwenden, die etwas über die Variable aussagt um das Programm leserlicher zu machen. Wie lange eine Variable gültig ist und verwendet werden kann, hängt von der Stelle ab, wo sie deklariert wird.
Besonderheit: Zuweisungskette
int x, y, z; x = y = z = 100; //x, y, z wird 100 zugewiesen
Mit einer einzigen Anweisung kann mehreren Variablen vom selben Typ ein Wert zugewiesen werden. Es wird dabei immer der Wert des rechten Ausdrucks zugewiesen.
Besonderheit: Kurzzuweisung
Processing, sowie auch Java, bietet spezielle Operatoren für Kurzzuweisungen:
allgemeine Form:
var op= Ausdruck;
=> Zuweisungoperatoren: +=, -=, *=, /=, %=, &=, |= ^=
x = x + 10;
Kurzform:
x += 10;
x = x - 10;
ist identisch mit:
x -= 10;
Systemvariablen
Processing stellt uns einige Variablen zur Verfügung, die Informationen über unseren Sketch enthalten
- width die Breite des Zeichenfensters
- height die Höhe des Zeichenfensters
- frameCount die Nummer des aktuellen Frames seit Start des Programms
- mouseX und mouseY die aktuellen Mauskoordinaten
- pmouseX und pmouseY die Koordinaten der Mausposition im letzten Frame
- mousePressed „true“, wenn die Maus gedrückt wurde
- keyPressed „true“ wenn eine Taste auf dem Keyboard gedrückt wurde
void setup(){ size(800,600); background(255); stroke(0); } void draw(){ ellipse(width/2, height/2, mouseX, mouseY); }
Gültigkeitsbereich der Variablen
Wird eine Variable am Anfang des Programms deklariert, so ist sie im ganzen Programm bekannt und kann verwendet werden. Wird sie innerhalb eines Codeblocks deklariert, so ist sie nur in diesem Stück bekannt. Der Block definiert also einen Gültigkeitsbereich.
Übungen
Erzeuge einen roten Kreis (mit Radius 20px) auf schwarzem Hintergrund, an der Stelle, wo sich die Maus gerade befindet.
- Lösung
void setup(){ size(800,800); //setzt die Größe des Canvas background(0, 0, 0); //setzt die Hintergrundfarbe } void draw(){ background(0, 0, 0); //setzt die Hintergrundfarbe (um den Canvas quasi zu löschen) fill(255,0,0); //setzt die Farbe des nächsten Grafikbefehls ellipse(mouseX, mouseY, 20, 20); //zeichnet eine Ellipse an der Stelle des Mauszeigers }