Mit dem Schlüsselwort “switch” kann man einen bestimmten Codeabschnitt ausführen und dieses abhängig vom Wert.
switch – case
Der Wert muss vom Datentyp “int” oder “char” sein.
int value = 0; switch(value){ case 0: doThings(); break; }
Wenn die ganzzahlige Variable den Wert “0” hat, dann wird die Funktion “doThings” ausgeführt.
Da diese Variable noch sehr viele weitere Werte annehmen kann, können wir hier die Liste beliebig fortführen.
#include <iostream> #include <cstdlib> using namespace std; void doThings(){ cout << "doThings" << endl; } void doOtherThings(){ cout << "doOtherThings" << endl; } int main(){ int value = 0; switch(value){ case 0: doThings(); break; case 1: doOtherThings(); break; } return 0; }
Der “case” Abschnitt kann (muss aber nicht) mit dem Schlüsselwort “break” beendet werden.
Wenn aber der Abschnitt mit “break” beendet wird, dann wird nur die Zeile ausgeführt, wo das Schlüsselwort steht. Im Umkehrschluss wird, wenn das Schlüsselwort “break” weggelassen wird, jede weitere Zeile ausgeführt bis entweder das Schlüsselwort “break” erscheint oder aber die switch Anweisung abgearbeitet ist.
switch – case – default
Da wir hier aber nicht alle 4.294.967,295 Werte behandeln wollen, gibt es das Schlüsselwort “default”.
Mit diesem Schlüsselwort können wir bequem alle Werte welche wir in der Switch Anweisung nicht aufgeführt haben behandeln.
char Zeichen als Bedingung
Am Anfang des Tutorials habe ich erwähnt das auch Zeichen vom Datentyp “char” ausgewertet werden können. Hier kann man Bsp. Daten von der seriellen Schnittstelle abgreifen / lesen und dann auswerten.
Der Datentyp char kann genau ein Zeichen annehmen. D.h. eine gesamte Zeichenkette kann man nicht auswerten.