Der (Daten-)Typ einer Variable bestimmt, welche Inhalte die Variable speichern kann. Die meisten der folgenden Datentypen werden primitive Datentypen genannt (Ausnahme: String). Man erkennt sie daran, dass sie klein geschrieben sind (int, float, ...), wohingegen nicht-primitive Datentypen (hier: String) groß geschrieben werden. Den genauen Unterschied lernen wir erst später kennen. Für dich liegt der Unterschied lediglich in der Groß-/Kleinschreibung.
Die Grundlage: Bits
Bits bilden die Grundlage des Maschinencodes. Das bedeutet: Alles, was du programmierst, wird am Ende auf Bits runtergerechnet. Ein Bit (engl. Abk. für: binary digit; dt.: Binärziffer) ist die kleinste Informationseinheit eines Rechners und entspricht den Zuständen "Strom an" (1) und "Strom aus" (0). Bits basieren somit auf dem binären Zahlensystem.
Acht Bits werden zu einem Byte zusammengefasst. Ein Byte kann damit 28 = 256 Zustände wiedergeben.
0000 0001 = 1
0000 0010 = 2
0000 0011 = 3
usw.
Andere Datentypen benötigen mehr Bits und haben somit einen größeren Wertebereich. Dieser bezeichnet die Spanne an Werten, die mit dem jeweiligen Datentyp dargestellt werden kann. Je mehr Bits ein Datentyp verwendet, desto mehr Speicher nimmt dieser ein.
Ein Byte kann 256 Zustände wiedergeben. Man könnte also sagen, ein Byte hat einen Wertebereich von 0 bis 256. Das ist allerdings nicht sinnvoll, da man ja auch in der Lage sein möchte negative Werte anzugeben. Daher wird der Wertebereich so verschoben, dass die 0 die Mitte bildet und je eine Hälfte des Bereichs für die negativen und die andere Hälfte für die positiven Werte zur Verfügung steht. Somit hat ein Byte einen Wertebereich von -128 bis 127.
Zahlen
In Programmiersprachen unterscheidet man zwischen ganzen Zahlen (z.B. -2 oder -3 oder 42 oder 0) und rellen Zahlen (z.B. 3,1415 oder 1.3e-7). Reelle Zahlen werden auch Kommazahlen oder Gleitkommazahlen genannt.
Ganze Zahlen
Ganze Zahlen sind Zahlen ohne Nachkommestellen, im Englischen integer genannt. Es gibt mehrere Typen, die ganze Zahlen speichern, je nachdem wie groß/klein die Zahlen sind, die man speichern möchte.
→ In der Regel verwendet man int.
| Typ | Beschreibung | Wertebereich |
| byte | sehr kleine Zahl (8 Bit) | -128 bis 127 |
| short | kleine Zahl (16 Bit) | -32768 bis 32767 |
| int | große Zahl (32 Bit) | -2 147 483 648 bis 2 147 483 647 |
| long | noch größere Zahl (64 Bit) | ca. -9 * 10^18 bis 9 * 10^18 |
Beispiel:
int foo;
foo = 50;
rect(foo, foo, 20, 20);
Bei Zahlen muss Processing manchmal "raten", ob du eine ganze Zahl meinst oder eine Gleitkommazahl. Prinzipiell gilt: Wenn du eine Zahl ohne Komma (bzw. Punkt) schreibst, interpretiert Processing die Zahl als ganze Zahl vom Typ int.
Gleitkommazahlen
Gleitkommazahlen sind Zahlen mit Nachkommastellen (auch reelle Zahlen genannt). In Processing verwendest du meistens float , später in Java wirst du meistens double verwenden.
WICHTIG: Schreibe Gleitkommazahlen - so wie in England und USA üblich - mit einem Punkt. Also 1.5 statt 1,5.
Bei Gleitkommazahlen unterscheiden sich die beiden Typen nicht darin, dass der Wertebereich größer ist, sondern in der Anzahl der Dezimalstellen, die gespeichert werden können. Stell dir die Rechnung 10/3 vor. Der Rechner kann nicht "3 Komma Periode 3" darstellen, indem er unendlich viele Nachkommastellen speichert. In der Tabelle sehst du, wie viele Stellen insgesamt gespeichert werden können.
| Typ | Beschreibung | Wertebereich | Stellen |
| float | Zahl mit Nachkommastellen (32 Bit) | z.B. -0.5, 0, 109.333 | 7 bis 8 |
| double | Zahl mit Nachkommastellen (64 Bit) | wie oben | 15 bis 16 |
Beispiel:
float x;
x = 75.0 / 2;
ellipse(x, 50, 30, 30);
Auch hier muss Processing oft "raten", ob du eine ganze oder eine Gleitkommazahl meinst. Prinzipiell gilt: Wenn du eine Zahl mit Nachkommastellen schreibst, interpretiert Processing die Zahl als Gleitkommazahl vom Typ float.
Wenn du z.B. die Zahl 2 als Gleitkommazahl interpretiert haben möchten, musst du 2.0 schreiben. Eine weitere Schreibweise ist, ein "f" für float oder ein "d" für double an die Zahl anzuhängen. Zum Beispiel:
println(10/3f); // 3 als float
println(10/3d); // 3 als double
3.3333333
3.3333333333333335
Wahrheitswerte, Buchstaben, Text
Wahrheitswerte (boolean)
Wahrheitswerte lernst du in Zusammenhang mit If-Anweisungen kennen. Ein Wahrheitswert ist entweder wahr (true) oder falsch (false). Es gibt also zwei mögliche Werte für eine solche Variable. Der Typ heißt boolean. Dabei ist boolean ein Adjektiv, also wie im Deutschen "eine boole'sche Variable".
| Typ | Beschreibung | Wertebereich |
| boolean | Wahrheitswert | true und false |
Beispiele:
boolean iLikeCheese;
boolean iLikeIceCream;
iLikeCheese = false;
iLikeIceCream = true;
println("Cheese: " + iLikeCheese);
println("Ice Cream: " + iLikeIceCream);
Cheese: false
Ice Cream: true
Zeichen (char)
In Processing gibt es einen Datentyp für einzelne Zeichen. Ein Zeichen ist z.B. ein Buchstabe wie a, A, m, Z oder auch ein Sonderzeichen wie #, ! oder /. Im Englischen heißt Zeichen character, daher heißt der Datentyp
char.
| Typ | Beschreibung | Wertebereich |
| char | einzelnes Zeichen (z.B. Buchstabe) | z.B. 'a' oder '%' |
Du kannst ein einzelnes Zeichen in einer Variable abspeichern. Das Zeichen wird immer mit einfachen Anführungszeichen umgeben:
char c1 = 'a';
char c2 = '5';
char c3 = '%';
println(c1, c2, c3);
a 5 %
Intern wird ein Zeichen als ganze Zahl repräsentiert. Diese Zahl entspricht einer standardisierten Tabelle. Für die handelsüblichen Buchstaben ist das zum Beispiel der ASCII-Code (ohne Umlaute). ASCII steht für "American Standard Code for Information Interchange" und ist ganz einfach eine Tabelle, wo für jeden Buchstaben/Zeichen eine Zahl zugeordnet wird.
Zeichenketten (String)
String ist englisch für "Schnur" oder "Kette". Das deutet darauf hin, dass ein String eine Aneinanderreihung von Zeichen (engl. character) ist. Man sagt deshalb auch Zeichenkette. Der Typ String wird im Gegensatz zu int, float, char ... groß geschrieben.
In String-Variablen können Texte ablegt werden. Der Text wird mit doppelten Anführungszeichen gekennzeichnet:
String foo = "Dies ist ein Text!";
Du hast Strings bereits im Zusammenhang mit println() gesehen:
println("hallo");
hallo
Genauso könntest du schreiben:
String message = "hallo";
println(message);
Du kannst Strings zusammenkleben, dies nennt man String-Konkatenation und funktioniert mit dem normalen Plus-Zeichen:
String message = "hallo";
println(message + " bob");
hallo bob
Das Plus-Zeichen bekommt also im Zusammenhang mit Strings eine andere Bedeutung. Wenn du eine Zahl mit einem String "addierst", wird die Zahl in einen String verwandelt:
String message = "high" + 5;
println(message);
high5
Du kannst Strings auch direkt in das print schreiben:
println("high" + 5);
Zusammenfassung
Du hast die folgenden primitiven Datentypen kennengelernt:
| Typ | Beschreibung | Wertebereich |
| byte | sehr kleine Zahl (8 Bit) | -128 bis 127 |
| short | kleine Zahl (16 Bit) | -32768 bis 32767 |
| int | große Zahl (32 Bit) | -2 147 483 648 bis 2 147 483 647 |
| long | noch größere Zahl (64 Bit) | ca. -9 * 10^18 bis 9 * 10^18 |
| float | Zahl mit Nachkommastellen (32 Bit) | z.B. -0.5, 0, 109.333 |
| double | Zahl mit Nachkommastellen (64 Bit) | wie oben |
| boolean | Wahrheitswert | true und false |
| char | einzelnes Zeichen (z.B. Buchstabe) | z.B. 'a' oder '%' |
Des weiteren hast du den Typ String kennengelernt, der es erlaubt, Zeichenketten (= Text) abzuspeichern. Strings können mit dem Plus-Zeichen verbunden werden. Diese Operation nennt man String-Konkatenation.