Benutzer-Werkzeuge

Webseiten-Werkzeuge


wenndann:switch:start

Die switch-Anweisung (mehrseitige Auswahl)

Beispiel 1: Raumplan

Die Raumbelegung der Mehrzweckräume des Gymnasiums Kleinschwabhausen sieht heute so aus:

RaumnummerBelegung
131Besprechung der Fachschaft Mathematik
161Projekt 'Umwelt macht Schule'
162Lehrerfortbildung zur Benutzung der neuen Whiteboards
202Gesperrt (Renovierungsarbeiten)

Nach Eingabe einer Raumnummer soll der Computer die Belegung ausgeben.

Natürlich könnte man das mit einer riesigen 'if' - 'else' - Konstruktion lösen:

if(raumnummer == 131){
   println("Besprechung der Fachschaft Mathematik");
} else {
   if(raumnummer == 161){
      println("Projekt 'Umwelt macht Schule'");
   } else {
      // usw...
   }
}

Das wird schnell unübersichtlich! Für solche Fälle gibt es die switch-Anweisung:

Die switch-Anweisung

switch(wert){
   case wert1:
      Anweisungen1;
      break;
   case wert2:
      Anweisungen2;
      break;
   case wert3:
      Anweisungen3;
      break;
   case wert4:
      Anweisungen4;
      break;
   // usw...
   default:
      Default-Anweisungen;
}

führt Anweisungen1 aus, falls wert == wert1, sie führt Anweisungen2 aus, falls wert == wert2 usw. Falls der Wert in keinem der case-Blöcke enthalten sind, werden die Anweisungen des default-Blocks ausgeführt.

Vorsicht: Die break-Anweisungen sind wichtig!

Die switch-Anweisung springt zum case-Block, der den richtigen Wert enthält, und führt die Anweisungen dort durch. Trifft sie auf kein break, so führt sie auch die Anweisungen der nachfolgenden case-Blöcke solange durch, bis sie dort endlich auf ein break trifft.

Der Sinn dieser Festlegung (die bspw. in der Programmiersprache Pascal anders getroffen ist) ist, dass dadurch ermöglicht wird, gleichartige Fälle zusammenzufallsen, bspw.

switch(gewürfelteZahl){
   case 1:
   case 3:
   case 5:
      println("Es wurde eine ungerade Zahl gewürfelt.");
      break;
   case 2:
   case 4:
   case 6:
      println("Es wurde eine gerade Zahl gewürfelt.");
      break;
   default: 
      println("Bist Du sicher, dass Du mit einem sechsseitigen Würfel gewürfelt hast?");
}
wenndann/switch/start.txt · Zuletzt geändert: 2021/12/29 11:29 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki