Version 7 (modified by tr, 8 years ago) (diff) |
---|
Datentyp
In Java gibt es verschiedene Arten eingebauter Datentypen. Die Datentypen für Ganzzahlen, Fließkommazahlen, Unicode-Zeichen und Wahrheitswerte sind sog. primitive Datentypen.
Ganzzahlen
- byte - ganze Zahlen -128 ... 127
- short - ganze Zahlen -32.768 ... 32.767
- int - ganze Zahlen -2.147.483.648 ... 2.147.483.647
- long - ganze Zahlen ~ (-9 *1018 ... 9 *1018)
Fließkommazahlen
- float - Gleitkommazahlen -3.40282347 *1038 ... 3.40282347 *1038
- double - Gleitkommazahlen -1.79769313486231570 *10308 ... 1.79769313486231570 *10308
Unicode-Zeichen
- char - ASCII-Tabelle: http://www.tabelle.info/ascii_zeichen_tabelle.html
Wahrheitswerte
- boolean - true / false
Zeichenketten
- String - Beispiel: "Hallo Welt"
Ein String gehört zu den primitiven Datentypen, wird aber in Java nicht als solcher behandelt.
Zeichenketten können verkettet und auf gleiche oder verschiedene Instanz überprüft werden.
- Verkettung
String vorname = "Peter"; String nachname = "Meier"; String name1 = vorname + " " + nachname; String name2 = "Peter " + "Meier";
- Vergleichsoperatoren
== | Prüfung auf gleiche Instanz |
!= | Prüfung auf verschiedene Instanz |
Bei der Prüfung auf gleiche oder verschiedene Instanz wird verglichen, ob die Verweise (Variablennamen) auf das selbe im Speicher liegende Objekt zeigen.
Sichere Variante mit equals
String s1 = "Katrin"; String s2 = "Kathrin"; boolean gleich = s1.equals(s2);
Variable
Variable werden benötigt, um Informationen (Zahlen, Buchstaben, Zeichen, etc.) abzuspeichern und zu benutzen.
Der Name einer Variablen sollte im Kontext zu ihrer Benutzung stehen, um Irritationen zu vermeiden und der Anfangsbuchstabe klein geschrieben werden.
Deklaration
Vor der ersten Verwendung muss eine Variable bekanntgemacht werden. Dies nennt man Deklaration.
- Allgemeine Form
- datentyp variablenname;
int x; int das_ist_auch_ein_name33; String name; char geschlecht; int alter; boolean volljaehrig; String textausgabe;
Zuweisung
In Variablen lassen sich Daten speichern und um sie zu nutzen, müssen sie zuerst initialisiert werden.
Das Prinzip ist, dass wir den Ausdruck auf der rechten Seite in die Variable auf der linken Seite speichern wollen.
- Allgemeine Form
- variablenname = wert;
das_ist_auch_ein_name33 = 42;
Deklaration mit Zuweisung (Initialisierung)
Es kann eine Variable in einer Anweisung deklariert und einem Wert zugewiesen werden.
- Allgemeine Form
- datentyp variablenname = wert;
String name = "Peter"; char geschlecht = 'm'; int alter = 42; boolean volljaehrig = true;
- Weitere Möglichkeiten Variablen zu initialisieren
String name = "Name: " + "Peter"; String nichts = ""; double a,b,c,d = 0.2; double zufallszahl = (Math.random() * 3.9) / 2;
Bedingte Anweisung
Nur bei Erfüllung der Bedingung wird die Anweisung ausgeführt. So kann eine situationsabhängige Entscheidung getroffen werden.
Eine Bedingung kann entweder zu true oder zu false ausgewertet werden. Sie ist ein Boolescher Ausdruck, der selbst wieder aus Booleschen Ausdrücken und Operatoren (siehe unten) zusammengesetzt sein kann. Beispiele:
- Allgemeine Formen
if (Bedingung) { // Anweisung; }
Verknüpfen von Ausdrücken mit logischen Operatoren:
if (Ausdruck1 && Ausdruck2) { // Anweisung; } if (Ausdruck1 || Ausdruck2) { // Anweisung; } if ((Ausdruck1 || (Ausdruck2 && Ausdruck3)) && !Ausdruck4) { // Anweisung; }
- Beispiele
// Falls die Variable a negativ ist, dann wird sie mit -1 multipliziert. if (a < 0) { a = a * -1; }
// Falls beendeProzess() true zurueckgibt, dann wird auf der Konsole "Erledigt." ausgegeben. if (beendeProzess() == true) { System.out.print("Erledigt."); }
// Falls teilbar(x) true zurueckgibt und die Variable x größer als 42 ist, dann // wird auf der Konsole die Variable x ausgegeben. if (teilbar(x) && x > 42) { System.out.print(x); }
// Falls y größer 0 und kleiner 1 ist, dann liegt es im Intervall. if (y > 0 && y < 1) { System.out.print(y + " liegt im Intervall."); }
Bedingte Anweisung mit Alternative
Falls die erste Bedingung nicht zutrifft, werden nacheinander die Alternativen überprüft. Es kann auch eine Alternative eintreten, die nicht an eine Bedingung geknüpft ist.
- Allgemeine Form
-
if (Bedingung) { // Anweisung; } else if (Bedingung) { // Anweisung; } else { // Anweisung; }
- Beispiele
// Falls x gleich 0 ist und y ungleich 0, dann wird auf der Konsole "Fehler." ausgegeben. // Falls aber x größer 0 ist, wird y zu 5. // Ansonsten wird tuWas() ausgeführt. if (x == 0 || y != 0) { System.out.print("Fehler."); } else if (x > 0) { y = 5; } else { tuWas(); }
// Falls die Variable kontoguthaben kleiner 3451 ist, dann wird die Ueberweisung abelehnt. // Ansonsten wird die Ueberweisung ausgeführt. if (kontoguthaben <= 3451) { System.out.print("Überweisung abgelehnt."); } else { System.out.print("Überweisung erfolgreich."); }
// Falls der Wert der Variablen ueberweisung kleiner als 10 und größer als 5 ist, dann // wird geringeGebuehren() und ueberweise() ausgefuehrt. // Falls der Wert der Variablen ueberweisung kleiner als 10 und kleiner oder gleich 5 ist, dann // wird hoheGebuehren() und ueberweise() ausgefuehrt. // Ansonsten wird nur ueberweise() ausgefuehrt. if (ueberweisung < 10) { if (ueberweisung > 5) { geringeGebuehren(); ueberweise(); } else { hoheGebuehren(); ueberweise(); } } else { ueberweise(); }
Fallunterscheidung
Mit einer switch-case-Verzweigung können, wie bei einer if-else-Verzweigung, ein Ausdruck überprüft und entsprechende Anweisungen ausgeführt werden. Mögliche Datentypen für den Ausdruck sind int, char, String.
- Allgemeine Form
-
switch (Ausdruck) { // Der Ausdruck hinter dem switch jetzt nacheinander mit den hinter der Sprungmarke case aufgeführten // Ausdrücken verglichen. Trifft nichts zu, wird alternativ default ausgeführt. case Ausdruck1: // Anweisung break; case Ausdruck2: // Anweisung; break; : : : case AusdruckN: // Anweisung break; default: // Anweisung }
Es ist wichtig darauf zu achten, dass nach einer Anweisung ein break folgt, da sonst mehrere Fälle hintereinander ausgeführt werden können.
- Beispiele
int monat = s.nextInt(); String jahreszeit = ""; switch (monat) { case 3: case 4: case 5: jahreszeit = "Frühling"; break; case 6: case 7: case 8: jahreszeit = "Sommer"; break; case 9: case 10: case 11: jahreszeit = "Herbst"; break; case 1: case 2: case 12: jahreszeit = "Winter"; break; default: jahreszeit = "Diesen Monat gibt es nicht."; }
String eingabe = s.nextLine(); switch (eingabe) { case "Hallo": System.out.println("Guten Tag."); break; case "Tschuess": System.out.println("Auf Wiedersehen."); break; case "Wie geht es dir?": System.out.println("Gut und selbst?"); break; case "Gut": System.out.println("Na dann."); break; default: System.out.println("Das verstehe ich nicht."); }
Vergleichsoperatoren
Um mindestens zwei Variablen miteinander zu vergleichen. benutzt man Vergleichsoperatoren.
Das Ergebnis eines Vergleiches ist immer vom Typ boolean.
- Allgemeine Form
- Operand1 Vergleichsoperator Operand2
Operator | Bedeutung | true | false |
---|---|---|---|
== | gleich | 2 == 2 | 2 == 3 |
!= | nicht gleich | 3 != 2 | 2.01 != 2.01 |
< | kleines als | 2 < 13 | 5 < 1 |
<= | kleiner oder gleich | 1 <= 1 | 4 <= 3 |
> | größer als | 10 > 8 | 8 > 11 |
>= | größer oder gleich | 42 >= 42 | 2.99 >= 3.001 |
Logische Vergleichsoperatoren
In Java bedeutet
- && und
- || oder
A | B | !A | A && B | A || B |
---|---|---|---|---|
0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 1 | 1 |
Typcasting
Es kann vorkommen, dass ein Datentyp unpassend für eine bestimmte Situation ist. Deshalb ist es möglich, den Datentyp nachträglich zu verändern, dass sog. Typcasting.
- Allgemeine Form
- datentyp variablename= (neuer datentyp) ausdruck;
- Beispiele
// Beim Casten von double zu int werden die Nachkommastellen abgeschnitten. double d = 5.3; int x = (int) d; // x == 5
int z = 5; double zahl = (double) z; // zahl == 5.0