Programmbeispiel "Noten" mit switch, case , brake und default

Problemstellung:

Es soll zu einer eingegebenen Note (1 bis 5) der zugehörige Text "sehr gut", "gut", usw. ausgegeben werden.

Erstellen wir zur besseren Übersicht einen Programmablaufplan mit PapDesigner.

Das sollte dann in etwa so aussehen:

Zuerst der Programmcode ohne break:

public class Main
{
    public static void main(String[] args)
    {
      int note;
      note = 3;   //Hier bitte die Note eingeben
     
      switch (note)   //Achtung! kein ;
      {   
        case 1: System.out.println("sehr gut");
        case 2: System.out.println("gut");
        case 3: System.out.println("befriedigend");
        case 4: System.out.println("genügend");
        case 5: System.out.println("nicht genügend");
       
        default: System.out.println("Falsche Eingabe!");
      }
    }
 }

 

Ausgabe: 

befriedigend

genügend

nicht genügend

Falsche Eingabe!

 

Verwenden wir, wie in diesem Beispiel kein break, dann werden nach der Marke (in unserem Fall case 3:) alle Anweisungen im switch-Block danach nacheinander ausgeführt. Nur eine falsche Eingabe würde unser Programm korrekt ausführen.

Die mit case bezeichneten Stellen im Programm sind also lediglich Einstiegsmarken.
Damit ist aber die Funktionalität einer Mehrfachverzweigung nicht gegeben. Diese schafft man erst, wenn man den switch-Block durch einen Sprung wieder verlässt.

 

Mit den breaks realisiert man genau diese Sprünge:

 

public class Main
{
    public static void main(String[] args)
    {
      int note;
      note = 3;   //Hier bitte die Note eingeben
     
      switch (note)   //Achtung! kein ;
      {   
        case 1: System.out.println("sehr gut"); break;
        case 2: System.out.println("gut"); break;
        case 3: System.out.println("befriedigend"); break;
        case 4: System.out.println("genügend"); break;
        case 5: System.out.println("nicht genügend"); break;
       
        default: System.out.println("Falsche Eingabe!");
      }
    }
 }

 

Ausgabe:

befriedigend