4. Kontrollstrukturen
Sowie in jeder anderen Programmiersprache gibt es auch in Java die sogenannten Kontrollstrukturen. Sicherlich fragst du dich nun, wozu die denn dienen sollen. Kurz gesagt führen Kontrollstrukturen eine Anweisung durch, wenn die bestimmte Bedingung erfüllt ist. Ansonsten wird dem Computer gesagt, etwas anderes zu tun. Um dir das zu veranschaulichen, werden wir uns jetzt ein Beispiel anschauen:
4.1 if-else
int meineZahl = 25;
if(meineZahl < 100){
System.out.println("Deine Zahl ist kleiner als 100");
}
else{
System.out.println("Deine Zahl ist grösser oder gleich 100");
}
In meinem Beispiel wurde zuerst eine
Variable namens meineZahl mit dem
Datentyp Integer erstellt und als Wert wurde 25 zugewiesen. Als nächstes folgt,
wie du sehen kannst, die Kontrollstruktur.
Dazu verwendet man die if-Anweisung. Innerhalb der Klammern musst du die
Bedingung einfügen. In diesem Beispiel ist die Bedingung, dass die Variable meineZahl einen kleineren Wert haben
muss als 100. Doch damit etwas geschieht, wenn diese Bedingung erfüllt ist,
muss man eine Anweisung in den geschweiften Klammern eingeben. Hier habe ich
als Anweisung eine Textausgabe auf der Konsole genommen.
Es kann aber auch sein, dass meine bestimmte Bedingung nicht erfüllt wird.
Damit der Computer auch dann etwas zu tun hat, schreiben wir eine
else-Anweisung. Diese hat einen kleinen Unterscheid zur if-Anweisung, denn hier
wird keine Bedingung benötigt. Also schreiben wir nach else, in geschweiften
Klammern, den Befehl, den der Computer ausführen soll. Wie du oben sehen
kannst, wird hier dann auf der Konsole der folgende Text ausgegeben:
„Deine Zahl ist grösser oder gleich 100“.
int meineZahl = 6;
if(meineZahl > 0 && meineZahl < 100){
System.out.println("Deine Zahl liegt im Zahlenbereich.");
}
else{
System.out.println("Deine Zahl liegt nicht im Zahlenbereich.");
}
Zuallererst
erstellen wir die bekannte Variable namens meineZahl,
aber dieses Mal mit dem
Wert 6.
Danach müssen wir die Kontrollstruktur erstellen. Nun siehst du, dass die
Bedingung etwas anders aussieht, als die erste. Hier wurde ein sogenannter Operator
benutzt. Der Operator && bedeutet so viel wie „und“. Es wird überprüft,
ob meineZahl grösser als 0 und kleiner als 10 ist. Wird diese
Bedingung erfüllt, wird die danach folgende Konsolenausgabe ausgeführt. Wenn
die Bedingung nicht erfüllt wird, wird die Ausgabe „Deine Zahl liegt nicht im
Zahlenbereich.“ ausgeführt.
Doch wenn du zum Beispiel überprüfen willst, ob meineZahl einen Wert von 6 oder 10 hat, musst du einen anderen
Operator verwenden. Und zwar den Operator ||. Dieser bedeutet auf Deutsch
übersetzt „oder“. Auf der folgenden Tabelle siehst du die verschiedenen
Operatoren, welche du für deine Kontrollstruktur verwenden kannst, und ihre Bedeutung:
Im nachfolgenden Beispiel zeige ich dir mit Hilfe einer if-else Kontrollstruktur den Unterschied beim Vergleichen von Integer-Werten und Strings:
String name = "Peter";
int alter = 15;
if(name.equals("Peter") && alter == 15){
System.out.println("Der Name ist Peter und er ist 15 Jahre alt");
}
else{
System.out.println("Falsche Person");
}
Du siehst hier, dass man Integer-Werte mit dem doppelten Gleichheitszeichen (==) vergleicht. Bei Strings solltest du jedoch immer die .equals Methode verwenden, auch wenn dieser Vergleich mit dem doppelten Gleichheitszeichen funktioniert.
4.2 switch-case
Eine Kontrollstruktur muss nicht zwingend aus einem if und
einem else Teil bestehen. Unter Umständen kann es nützlich sein, die sogenannte
switch-case Kontrollstruktur zu verwenden. Sie ist besonders dann hilfreich,
wenn wir eine bestimmte Anzahl an Ausgängen bereits kennen und eine dieser
garantiert eintreffen sollte. Im folgenden Beispiel untersuchen wir eine Person
nach ihrer Funktion in einer Unternehmung. Switch-case ist so aufgebaut, dass
wir zunächst die zu untersuchenden Werte definieren. In unserem Fall die Variable
name. Anschließend definieren wir die möglichen Ausgangsfälle, oder auch cases.
In unserer Unternehmung arbeiten vier Personen, zwei davon als Berater.
Dementsprechenden benötigen wir drei cases, wobei ein case gleich bei zwei
Mitarbeitern zutrifft. Bei zwei oder mehreren Fällen, die bei einem case
zutreffen, schreiben wir jeweils alle untereinander auf. Um die Folge zu
definieren, setzen wir ein Doppelpunkt hinter jedem case. Nachdem das geschehen
ist, breaken wir nach jedem case den Prozess. Eine Besonderheit beim
switch-case ist der default. Er ist quasi wie ein Auffangbecken für alles was
nicht zutrifft. Anders als bei der if-else Kontrollstruktur, ist diese keine
logische Konsequenz aus einem Ausschlussverfahren, sondern für all das zuständig
was uns nicht weiter interessiert. In unserem Beispiel fängt der default alle
Personen auf, die nicht in unserer Unternehmung arbeiten.
String name = "Jonas";
switch (name) {
case "Ralf":
System.out.println("Kassierer");
break;
case "Tom":
case "Jonas":
System.out.println("Berater");
break;
case "Andrea":
System.out.println("Logistiker");
break;
default:
System.out.println("Die Person ist kein Mitarbeiter");
break;
}