Instructions conditionnelles switch

Comme une structure if, la structure switch est une structure conditionnelle, c'est-à-dire qu'elle comporte différents blocs d'instructions qui seront exécutés de manière conditionnelle.

Cependant, ici il n'y a pas de conditions logiques, le critère de choix est la valeur d'une expression (ou d'une variable). Cette valeur, que l'on appelle cas (case), permet la sélection du bloc à exécuter.

Syntaxe

La syntaxe est la suivante :

switch expression du choix

case expression du cas

        instructions

    ...

case expression du cas

        instructions

    ...

otherwise

        instructions

end

Exemple

heure = input('Quelle heure est-il ?\n','s');

switch heure
    case {'0','1','2','3','4','5','6','7','8','9','10','11','12','midi'}
        disp(' C''est le matin !');
    case {'13','14','15','16','17','18','19','20','21','22','23','24','minuit'}
        disp(' C''est l''après-midi !');
    otherwise
        disp(' Ce n''est pas possible...');
end

Remarque

Le choix (switch) se fait sur la valeur d'une variable ou d'une expression.

L'expression du cas peut être une simple valeur de type numérique ou alphanumérique. Mais ce ne peut pas être une expression contenant une opération relationnelle (< ou >).

Ainsi, contrairement aux conditions if, l'ensemble des cas est forcément un ensemble fini de valeurs.

Remarque

Un switch peut contenir de nombreux cas, mais dès lors que le choix correspond à l'une des expressions de cas, le bloc d'instructions correspondant est exécuté, et les cas suivants sont ignorés (même si un autre cas pourrait satisfaire l'expression du choix).