switch, case, otherwise
Ausführen einer von mehreren Anweisungsgruppen
Syntax
switchswitch_expressioncasecase_expressionstatementscasecase_expressionstatements... otherwisestatementsend
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_expressionBei Zeichenvektoren:
strcmp(.case_expression,switch_expression) == 1Bei Objekten, die die Funktion
equnterstützen:. Die Ausgabe der überladenen Funktioncase_expression==switch_expressioneqmuss 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_expressionkann für den Vergleich mit demswitch_expressionkeine relationalen Operatoren wie<oder>berücksichtigen. Verwenden Sie für die Prüfung auf Ungleichheit die Anweisungenif, elseif, else.Die MATLAB-Anweisung
switchschlä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 Variablexenthält, kann sie nur von Fällen verwendet werden, diexdefinieren:switch choice case 1 x = -pi:0.01:pi; case 2 % does not know anything about x end
Die MATLAB-Anweisung
breakbeendet die Ausführung einerfor- oderwhile-Schleife, nicht jedoch die einerswitch-Anweisung. Dieses Verhalten unterscheidet sich vom Verhalten vonbreakundswitchin C.
Erweiterte Fähigkeiten
Versionsverlauf
Eingeführt vor R2006a
