Wie bei einer if/else-Anweisung kannst du mit einer switch-Anweisung den Ablauf des Programms ändern, indem du Code abhängig von Bedingungen ausführst.
Der Unterschied ist, dass eine switch-Anweisung den Wert eines primitiven Ausdrucks oder eines Strings nur mit vordefinierten konstanten Werten vergleichen kann.
Bei einer switch-Anweisung sind einige Schlüsselwörter nützlich.
switch: Mit diesem Schlüsselwort legst du die Struktur der switch-Anweisung fest.
Danach folgt der Ausdruck oder die Variable, die das Ergebnis bestimmt.case: Mit diesem Schlüsselwort gibst du die verschiedenen Möglichkeiten für das Ergebnis an.break: Das Schlüsselwort break ist sehr nützlich, um die Ausführung der switch-Anweisung am Ende des gewünschten Ablaufs zu beenden.
Wenn du es vergisst, läuft das Programm weiter und das kann zu unerwarteten Ergebnissen führen.default: Wie der Name schon sagt, verwendest du es als Standardergebnis, wenn kein anderer case zum Ergebnis deines Ausdrucks passt.Im einfachsten Fall prüfen sie einen primitiven Ausdruck oder einen String und treffen anhand seines Werts eine Entscheidung. Zum Beispiel:
String direction = getDirection();
switch (direction) {
case "left":
goLeft();
break;
case "right":
goRight();
break;
default:
// otherwise
markTime();
break;
}
Du entwickelst ein System, das den Mitarbeitern der Website eines Fußballvereins hilft, über Spiele zu berichten. Die Daten kommen aus verschiedenen Quellen und werden nach der Bereinigung in einen einzigen Stream geleitet.
Die Mannschaft spielt immer nur im 4-3-3-System und hat der Regeländerung von 1965, die Auswechslungen erlaubt, nie zugestimmt, von größeren Kadern ganz zu schweigen.
Die Spielerbeschreibungen sind wie folgt:
1 -> "goalie"
2 -> "left back"
3 & 4 "center back"
5 -> "right back"
6, 7, & 8 -> "midfielder"
9 -> "left wing"
10 -> "striker"
11 -> "right wing"
Implementiere die statische Methode FootballMatchReports.onField(), die anhand der Trikotnummer eine Spielerbeschreibung ausgibt.
FootballMatchReports.onField(10);
// => "striker"
Ändere die Methode FootballMatchReports.onField() so, dass sie „invalid“ zurückgibt, wenn eine Trikotnummer außerhalb des Bereichs 1-11 verarbeitet wird.
FootballMatchReports.onField(13);
// => "invalid"
Melde dich bei Exercism an, um Java mit 26 Konzepte158 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.