switch, case, otherwise
Ausführen einer von mehreren Anweisungsgruppen
Syntax
switchswitch_expression
casecase_expression
statements
casecase_expression
statements
... otherwisestatements
end
Beschreibung
switch
wertet einen Ausdruck aus und wählt anschließend eine von mehreren Anweisungsgruppen für die Ausführung aus. Jede Wahl ist ein Fall. switch_expression
, case case_expression
, end
Der Block switch
prüft jeden Fall, bis einer der Fallausdrücke wahr ist. Ein Fall ist unter folgenden Bedingungen wahr:
Bei Zahlen:
.case_expression
==switch_expression
Bei Zeichenvektoren:
strcmp(
.case_expression
,switch_expression
) == 1Bei Objekten, die die Funktion
eq
unterstützen:
. Die Ausgabe der überladenen Funktioncase_expression
==switch_expression
eq
muss entweder ein logischer Wert sein oder sie muss sich in einen logischen Wert konvertieren lassen.Bei einem Zellenarray
case_expression
: mindestens eines der Elemente des Zellenarrays stimmt mitswitch_expression
überein, wie oben für Zahlen, Zeichenvektoren und Objekte definiert.
Wenn ein Fallausdruck wahr ist, führt MATLAB® die entsprechenden Anweisungen aus und beendet den Block switch
.
Ein ausgewerteter switch_expression
muss ein Skalar oder ein Zeichenvektor sein. Ein ausgewerteter case_expression
muss ein Skalar, ein Zeichenvektor oder ein Zellenarray mit Skalaren oder Zeichenvektoren sein.
Der Block otherwise
ist optional. MATLAB führt die Anweisungen nur aus, wenn keiner der Fälle wahr ist.
Beispiele
Tipps
Ein
case_expression
kann für den Vergleich mit demswitch_expression
keine relationalen Operatoren wie<
oder>
berücksichtigen. Verwenden Sie für die Prüfung auf Ungleichheit die Anweisungenif, elseif, else
.Die MATLAB-Anweisung
switch
schlägt nicht fehl wie eineswitch
-Anweisung der Programmiersprache C. Wenn die erstecase
-Anweisung wahr (true
) ist, führt MATLAB die anderencase
-Anweisungen nicht aus. Beispiel:result = 52; switch(result) case 52 disp('result is 52') case {52, 78} disp('result is 52 or 78') end
result is 52
Definieren Sie alle Variablen, die für den Code erforderlich sind, in einem bestimmten Fall innerhalb dieses Falls. Da MATLAB nur einen Fall aller
switch
-Anweisungen ausführt, stehen Variablen, die innerhalb eines Falls definiert sind, nicht für andere Fälle zur Verfügung. Wenn Ihr aktueller Arbeitsbereich keine Variablex
enthält, kann sie nur von Fällen verwendet werden, diex
definieren:switch choice case 1 x = -pi:0.01:pi; case 2 % does not know anything about x end
Die MATLAB-Anweisung
break
beendet die Ausführung einerfor
- oderwhile
-Schleife, nicht jedoch die einerswitch
-Anweisung. Dieses Verhalten unterscheidet sich vom Verhalten vonbreak
undswitch
in C.
Erweiterte Fähigkeiten
Versionsverlauf
Eingeführt vor R2006a