La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
switch, case, otherwise
Exécuter un ou plusieurs groupes d’instructions
Syntaxe
switchswitch_expressioncasecase_expressionstatementscasecase_expressionstatements... otherwisestatementsend
Description
switch évalue une expression et choisit d’exécuter un groupe d’instructions parmi plusieurs. Chaque choix est un cas noté « case ». switch_expression, case case_expression, end
Le bloc switch teste chaque cas jusqu’à ce que l’une des expressions de cas soit vraie. Un cas est vrai dans les cas suivants :
Pour les nombres,
.case_expression==switch_expressionPour les vecteurs de caractères,
strcmp(.case_expression,switch_expression) == 1Pour les objets qui supportent la fonction
eq,. La sortie de la fonctioncase_expression==switch_expressioneqsurchargée doit être une valeur logique ou convertible en valeur logique.Pour une
case_expressionutilisant un cell array, au moins un des éléments du cell array correspond àswitch_expression, comme défini ci-dessus pour les nombres, les vecteurs de caractères et les objets.
Lorsqu’une expression de cas est vraie, MATLAB® exécute les instructions correspondantes et quitte le bloc switch.
Une switch_expression évaluée doit être un scalaire ou un vecteur de caractères. Une case_expression évaluée doit être un scalaire, un vecteur de caractères ou un cell array de scalaires ou de vecteurs de caractères.
Le bloc otherwise est facultatif. MATLAB exécute uniquement les instructions lorsqu’aucun cas n’est vrai.
Exemples
Conseils
Une
case_expressionne peut pas inclure d’opérateurs relationnels tels que<ou>à des fins de comparaison par rapport àswitch_expression. Pour tester l’inégalité, utilisez les instructionsif, elseif, else.L’instruction MATLAB
switchn’échoue pas comme une instructionswitchen langage C. Si la première instructioncaseesttrue, MATLAB n’exécute pas les autres instructionscase. Par exemple :result = 52; switch(result) case 52 disp('result is 52') case {52, 78} disp('result is 52 or 78') end
result is 52
Définissez toutes les variables nécessaires pour le code dans un cas particulier au sein de ce cas. Puisque MATLAB n’exécute qu’un seul cas d’une instruction
switch, les variables définies au sein d’un cas ne sont pas visibles pour les autres. Par exemple, si votre espace de travail actuel ne contient pas de variablex, seuls les cas qui définissentxpeuvent l’utiliser :switch choice case 1 x = -pi:0.01:pi; case 2 % does not know anything about x end
L’instruction MATLAB
breakmet fin à l’exécution d’une boucleforouwhile, mais pas à l’exécution d’une instructionswitch. Ce comportement est différent de celui debreaketswitchen C.
Capacités étendues
Historique des versions
Introduit avant R2006a
