Sauter d'un cas au cas par défaut dans l'instruction switch
switch(ch){
case 'a':
//do something, condition does not match so go to default case
//don't break in here, and don't allow fall through to other cases.
case 'b':
//..
case 'c':
//..
case '_':
//...
default:
//
break;
}
Dans une instruction switch comme ci-dessus, un-je entrer dans de cas "a", je me casse seulement si la condition à l'intérieur, il se produit, sinon j'ai envie de sauter au cas par défaut. Est-il un autre moyen de faire ceci plutôt que des étiquettes ou des gotos?
source d'informationauteur thetux4
Vous devez vous connecter pour publier un commentaire.
goto
Pour La VictoireSimplement réorganiser le cas, de sorte que cette affaire est la dernière:
Si la condition ne dépend pas de cas, pourquoi le mettre à l'intérieur?
Restructurer le code:
Cela ajoute aussi l'avantage d'être souple pour tester plusieurs classes de traitement par défaut. Disons que vous avez un groupe de caractères [c, d, e, f], qui partagent certaines de logique. Il suffit de le retourner 2 à partir de test_char() pour ces cas (éventuellement après quelques conditions a été testé), et ajoutez un cas 2: gestionnaire pour le traitement par défaut de l'instruction switch.
Je ne suis pas sûr si th est la meilleure réponse, mais ici, il va:
Si vous ne voulez absolument pas utiliser des étiquettes, et vous voulez garder le cas dans leur ordre actuel, alors vous pouvez continuer, après le cas " a " et ensuite vérifier afin de voir si(ch != 'a') au début de chaque cas, seule l'exécution de l'instruction si la condition est vraie:
Ce n'est probablement pas le moyen le plus efficace pour résoudre votre problème, mais il devrait accomplir ce que vous voulez.
Si vous devez avoir les instructions de commutation d'abord parce que l'état vous êtes à la vérification dépend de la cause (ou le cas doit être évalué en premier avant de vous pouvez vérifier l'état), il suffit de définir un indicateur à l'intérieur de votre
switch
cas, et si ce drapeau est mis, puis faire un mode de fonctionnement par défaut. Par exemple:Voici ce que j'ai fait:
Avec cette structure, vous pouvez basculer en cas de défaut de tout cas précédents. Pratique pour casser extérieur des boucles de trop.
J'espère que ma solution répond à votre question. Il suffit de laisser le cas, suivez à travers tout le chemin (à partir de l'appariement des cas) mais l'utilisation d'une condition de désactiver les cas ultérieurs de l'exécution.
saut à défaut
exemple