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.