Es gibt Probleme, bei deren Lösung man für mehrere Fälle die gleichen Anweisungen ausführen will. Mit einer switch-Anweisung, in der nicht jede case-Anweisung mit einem break abschließt, können solche Probleme elegant gelöst werden.
Beispiel:
static int tage(int monat) {
int result;
switch(monat) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
result = 31;
break;
case 4: case 6: case 9: case 11:
result = 30;
break;
case 2:
result = 28; // TODO: Schaltjahr
break;
default:
throw new IllegalArgumentException();
}
return result;
}
Die Methode tage() gibt für jeden Monat die Anzahl der Tage zurück. Die Monate 1, 3, 5, … sind gleich zu behandeln und werden daher mit einem gemeinsamen break abgeschlossen.
