switch, case, otherwise
Eseguire uno dei diversi gruppi di dichiarazioni
Sintassi
switchswitch_expression
casecase_expression
statements
casecase_expression
statements
... otherwisestatements
end
Descrizione
switch
valuta un'espressione e sceglie di eseguire uno dei diversi gruppi di dichiarazioni. Ciascuna scelta rappresenta un caso. switch_expression
, case case_expression
, end
Il blocco switch
verifica ciascun caso finché una delle espressioni di caso non è vera. Un caso è vero quando:
Per i numeri,
.case_expression
==switch_expression
Per i vettori di caratteri,
strcmp(
.case_expression
,switch_expression
) == 1Per gli oggetti che supportano la funzione
eq
,
. L’output della funzionecase_expression
==switch_expression
eq
sovraccaricata deve essere un valore logico o un valore convertibile in un valore logico.Per un array di celle
case_expression
, almeno uno degli elementi dell’array di celle corrisponde aswitch_expression
, come sopra definito per i numeri, i vettori di caratteri e gli oggetti.
Quando un'espressione di caso è vera, MATLAB® esegue le dichiarazioni corrispondenti ed esce dal blocco switch
.
Una switch_expression
valutata deve essere uno scalare o un vettore di caratteri. Una case_expression
valutata deve essere uno scalare, un vettore di caratteri o un array di celle di scalari o di vettori di caratteri.
Il blocco otherwise
è opzionale. MATLAB esegue le dichiarazioni solo quando nessun caso è vero.
Esempi
Suggerimenti
Una
case_expression
non può includere operatori relazionali come<
o>
per il confronto conswitch_expression
. Per verificare la disuguaglianza, utilizzare le dichiarazioniif, elseif, else
.La dichiarazione
switch
di MATLAB non passa inosservata come una dichiarazioneswitch
in linguaggio C. Se la prima dichiarazionecase
ètrue
, MATLAB non esegue le altre dichiarazionicase
. Ad esempio:result = 52; switch(result) case 52 disp('result is 52') case {52, 78} disp('result is 52 or 78') end
result is 52
Definire tutte le variabili necessarie per il codice di un caso specifico all'interno di quel caso. Poiché MATLAB esegue solo un caso di qualsiasi dichiarazione
switch
, le variabili definite in un caso non sono disponibili per gli altri casi. Ad esempio, se il workspace corrente non contiene una variabilex
, solo i casi che definisconox
possono utilizzarla:switch choice case 1 x = -pi:0.01:pi; case 2 % does not know anything about x end
La dichiarazione
break
di MATLAB termina l’esecuzione di unfor
loop o di unwhile
loop, ma non termina l’esecuzione di una dichiarazioneswitch
. Questo comportamento è diverso da quello dibreak
eswitch
in linguaggio C.
Funzionalità estese
Cronologia versioni
Introduzione prima di R2006a