Cela semble possible avec C #, mais j'en ai besoin avec C++ et de préférence multiplateforme.
Fondamentalement, j'ai un commutateur qui trie les choses sur des critères uniques et revient au traitement par défaut sur tout le reste.
Dire:
switch(color)
{
case GREEN:
case RED:
case BLUE:
Paint();
break;
case YELLOW:
if(AlsoHasCriteriaX)
Paint();
else
goto default;
break;
default:
Print("Ugly color, no Paint.")
break;
}
Pas tout à fait mais vous pouvez le faire:
switch(color)
{
case GREEN:
case RED:
case BLUE:
Paint();
break;
case YELLOW:
if(AlsoHasCriteriaX) {
Paint();
break; /* notice break here */
}
default:
Print("Ugly color, no Paint.")
break;
}
OU vous pouvez faire ceci:
switch(color)
{
case GREEN:
case RED:
case BLUE:
Paint();
break;
case YELLOW:
if(AlsoHasCriteriaX) {
Paint();
break; /* notice break here */
}
goto explicit_label;
case Fuchsia:
PokeEyesOut();
break;
default:
explicit_label:
Print("Ugly color, no Paint.")
break;
}
La réponse d'Ahmed est bonne, mais il y a aussi:
switch(color)
case YELLOW:
if(AlsoHasCriteriaX)
case GREEN:
case RED:
case BLUE:
Paint();
else
default:
Print("Ugly color, no Paint.");
les gens ont tendance à oublier la puissance des commutateurs