© MPohlig 2006 Einfache Datentypen und ihre Operatoren Übersicht April 2006 Wahlfach Informatik mit Java 1 © MPohlig 2006 Grunddatentypen Typ Beschreibung Wertebereich boolean Wahrheitswert, Boolescher Wert true, false char Einzelzeichen Unicode (16 Bit) '\u0000'...'\uffff' byte 8-Bit-Ganzzahl Zweierkomplement -128...0...127 short 16-Bit-Ganzzahl -32768...0...32767 int 32-Bit-Ganzzahl 0 -2 147 483 648 ...0...2 147 483 647 0 long 64-Bit-Ganzzahl ca. -9 e18 ...9 e18 float 32-Bit-Gleitkommazahl ca. -3.402823e88 .. 0..3.402823e88 kleinste Zahl >0: 1.4e-45 0.0 double 64-Bit-Gleitkommazahl ca. -1.797639e308 ..0.. 1.797639e308 kleinste Zahl > 0: 4.9e-324 0.0 April 2006 false ‘\u0000‘ 0 Wahlfach Informatik mit Java 0 2 Arithmetische Operatoren © MPohlig 2006 + unär pos. Vorzeichen +n ist das Gleiche wie n – unär neg. Vorzeichen –n kehrt das Vorzeichen von n um + binär Summe a + b – binär Differenz a – b * binär Produkt a * b / binär Quotient a / b % binär Modulo a % b ++ unär Prä-Inkrement ++a erhöht a um 1, löst dann ggf. einen Seiteneffekt aus ++ unär Post-Inkrement a++ löst ggf. einen Seiteneffekt aus und erhöht dann a um eins –– unär Prä-Dekrement ––a erniedrigt a um 1, löst dann ggf. einen Seiteneffekt aus –– unär Post-Dekrement a–– löst ggf. einen Seiteneffekt aus und erniedrigt dann a um eins April 2006 Wahlfach Informatik mit Java 3 © MPohlig 2006 Post- und Präinkrement … int a = 2; System.out.println(a++); System.out.println(a); … Aber… … int a = 2; System.out.println(++a); System.out.println(a); … April 2006 Wahlfach Informatik mit Java 4 © MPohlig 2006 boolean a; a = true; Typ boolean Oder auch… boolean a = true; Boolesche Größen können nur mit zwei Werten belegt werden true oder false. Häufig ist der zugewiesene Wert das Ergebnis einer Auswertung: boolean a; a = 3 == 2; April 2006 a erhält den Wert false. Wahlfach Informatik mit Java 5 © MPohlig 2006 Relationale Operatoren Operator Wertigkeit Bezeichnung Bedeutung binär gleich a == b binär ungleich a != b binär kleiner a < b <= binär kleiner gleich a <= b > binär größer a > b >= binär größer gleich a >= b == Diese Ausdrücke werden zu einem != booleschen Wert < ausgewertet April 2006 Wahlfach Informatik mit Java 6 © MPohlig 2006 Wie wertet Java aus? boolean a; int b = 7; a = b%2 == 0; Wird als Rest der Ganzzahldivision von 7 und 2 zu 1 ausgewertet. 1 false Der rechts stehende Ausdruck ist ausgewertet. Die links stehende Variable wird mit Prüft das links und rechts diesem Wert belegt. von == stehende auf Werte-Gleichheit. a hat den Wert false April 2006 Wahlfach Informatik mit Java 7 © MPohlig 2006 Logische Operatoren Operator Wertigkeit Bezeichnung Bedeutung ! unär NOT !a ergibt das logische Gegenteil von a && binär AND a && b „logisches und“ mit Kurzauswertung || binär OR a || b „logisches oder“ mit Kurzauswertung & binär AND a & b „logisches und“ ohne Kurzauswertung | binär OR a | b „logisches oder“ ohne Kurzauswertung ^ binär XOR a ^ b „exclusives oder“ April 2006 Wahlfach Informatik mit Java 8 © MPohlig 2006 Welcher Wert hat test- Welchen Wert hat b nach der 2ten Zeile? int a = 2, b = 2; (++b%2==0); boolean test = (a%2==0)&& (b++%2 == 0); int a = 3, b = 2; (++b%2==0); boolean test = (a%2==0)&& (b++%2 == 0); April 2006 Wahlfach Informatik mit Java 9 © MPohlig 2006 Zuweisungsoperatoren = binär Zuweisung a = b weist a den Wert von b zu += binär Additions-Zuweisung a += b ist gleichbedeutend mit a = a + b –= binär Subtraktions-Zuweisung a -= b ist gleichbedeutend mit a = a - b *= binär Multiplikations-Zuweisung a *= b ist gleichbedeutend mit a = a * b /= binär Divisions-Zuweisung a /= b ist gleichbedeutend mit a = a / b %= binär Modulo-Zuweisung a %= b ist gleichbedeutend mit a = a % b &= binär AND-Zuweisung a &= b ist gleichbedeutend mit a = a & b |= binär OR-Zuweisung a |= b ist gleichbedeutend mit a = a | b April 2006 Wahlfach Informatik mit Java 10 © MPohlig 2006 Sonstige Operatoren ? : ternär + binär Wir sagen der Operator ‚+‘ ist überladen: Er addiert a = bedint, ? xdouble, : y weist a den Wert x zu, falls bedingte Zuweisung etc oder verkettet bed Strings ‚wahr’ andernfalls den Wert y String-Concatenation a + b verkettet die beiden Strings a und b; ggf. wird a oder b zuvor in einen String umgewandelt. String test = String&&anrede = (geschl=='w')?"Frau":"Herr"; ((a%4==0) (a%100!=0))||(a%400==0) ? "Ist Schaltjahr" : "Ist oder: kein Schaltjahr"; System.out.print("Hallo" + (weiblich?"Frau":"Herr") (Type) (Type) a wandelt a in einen Ausdruck vom+ unär Type-Cast-Operator "Müller");Typ Type um, sofern möglich. Siehe nächstes Kapitel April 2006 Wahlfach Informatik mit Java 11