Une instruction switch peut-elle avoir plusieurs cas avec la même valeur en C++ ?

Dec 17, 2025

Laisser un message

Salut les passionnés de technologie ! En tant que fournisseur de commutateurs, on me pose souvent des questions très intéressantes sur les commutateurs, non seulement sur les commutateurs physiques que nous fournissons, mais également sur les constructions de programmation qui portent leur nom. Une question qui est apparue récemment est la suivante : « Une instruction switch peut-elle avoir plusieurs cas avec la même valeur en C++ ? Allons-y directement.

Les bases d'une instruction Switch en C++

Tout d’abord, voyons rapidement ce qu’est une instruction switch en C++. Une instruction switch est une instruction de flux de contrôle en C++ qui permet à un programme d'évaluer une expression, puis d'exécuter l'une des nombreuses instructions possibles en fonction de la valeur de cette expression. C'est une alternative plus propre à une longue chaîne desi-sinonlorsque vous comparez une seule variable à plusieurs valeurs constantes.

Voici un exemple simple d'une instruction switch en C++ :

Electronic Pressure Switch suppliersElectronic Pressure Switch factory

#include <iostream> int main() { int jour = 3; switch (jour) { cas 1 : std::cout << "Lundi" ; casser; cas 2 : std::cout << "Mardi" ; casser; cas 3 : std::cout << "Mercredi" ; casser; par défaut : std::cout << "Jour invalide" ; } renvoie 0 ; }

Dans cet exemple, lechangerl'instruction évalue la variablejour. Sijourest égal à 1, il imprime "Lundi". Si c'est 2, il imprime "Mardi", et ainsi de suite. Ledéfautl'affaire est exécutée si aucun descasles valeurs correspondent à l’expression.

Pouvez-vous avoir plusieurs cas avec la même valeur ?

Maintenant, la grande question : une instruction switch peut-elle avoir plusieurs cas avec la même valeur en C++ ? La réponse courte est non. C++ n'autorise pas plusieurscasétiquettes avec la même valeur constante dans un seulchangerdéclaration. Si vous essayez de faire quelque chose comme ceci :

#include <iostream> int main() { int num = 2; switch (num) { cas 1 : std::cout << "Un" ; casser; cas 2 : std::cout << "Deux" ; casser; cas 2 : // Cela provoquera une erreur de compilation std::cout << "Another Two"; casser; par défaut : std::cout << "Autre" ; } renvoie 0 ; }

Vous obtiendrez une erreur de compilation. Le compilateur se plaindra des valeurs de cas en double. La raison derrière cette restriction est d'éviter toute ambiguïté. S'il y avait plusieurs cas avec la même valeur, le compilateur ne saurait pas lequel exécuter lorsque l'expression correspond à cette valeur.

Solutions de contournement

Mais que se passe-t-il si vous avez vraiment besoin d’exécuter le même code pour plusieurs valeurs ? Eh bien, vous pouvez regrouper plusieurscasétiquettes ensemble. Voici comment procéder :

#include <iostream> int main() { int num = 2; switch (num) { cas 1 : std::cout << "Un" ; casser; cas 2 : cas 3 : std::cout << "Deux ou trois" ; casser; par défaut : std::cout << "Autre" ; } renvoie 0 ; }

Dans cet exemple, sidans unest soit 2, soit 3, le code sous le groupecasles étiquettes seront exécutées. Il s'agit d'un moyen parfaitement valable et utile de gérer plusieurs valeurs qui devraient déclencher la même action.

Pourquoi cela est important dans la programmation du monde réel

Comprendre les règles dechangerLes instructions sont cruciales pour écrire du code propre et sans bug. Dans les grands projets, une seule erreur de compilation peut faire perdre beaucoup de temps. En sachant que vous ne pouvez pas avoir de doubloncasvaleurs, vous pouvez éviter de commettre cette erreur courante.

Aussi, la possibilité de regroupercasles étiquettes peuvent rendre votre code plus concis et plus facile à lire. Au lieu d'écrire plusieurs fois le même code pour différentes valeurs, vous pouvez regrouper les valeurs pertinentes.casétiquettes ensemble.

Nos produits de commutation

En tant que fournisseur d'interrupteurs, nous proposons une large gamme d'interrupteurs de haute qualité pour diverses applications. L'un de nos produits populaires est lePressostat électronique. Ce commutateur est conçu pour mesurer et contrôler avec précision la pression dans différents systèmes. Il est fiable, facile à installer et est doté de fonctionnalités avancées qui en font un excellent choix pour les applications industrielles et commerciales.

Que vous travailliez sur un petit projet de bricolage ou sur un système industriel à grande échelle, nos interrupteurs sont conçus pour répondre à vos besoins. Nous sommes fiers de fournir des produits haut de gamme et un excellent service client.

Contactez-nous pour vos besoins en matière de commutation

Si vous êtes à la recherche de commutateurs, que ce soit pour la programmation ou pour des applications physiques, nous serions ravis d'avoir votre avis. Notre équipe d'experts peut vous aider à trouver le commutateur adapté à vos besoins spécifiques. N'hésitez pas à nous contacter et à entamer une conversation sur votre projet. Nous sommes là pour nous assurer que vous obtenez les meilleurs commutateurs aux meilleurs prix.

Références

  • Stroustrup, Bjarne. "Le langage de programmation C++." Addison-Wesley Professionnel, 2013.
  • Lippman, Stanley B., Josée Lajoie et Barbara E. Moo. "Introduction au C++." Addison-Wesley Professionnel, 2012.
Envoyez demande
Contactez-nouspour un soutien expert

Vous pouvez nous contacter par téléphone, e-mail ou via le formulaire en ligne ci-dessous, et notre équipe vous répondra dans les plus brefs délais.

Contactez-nous dès maintenant !