Je voudrais savoir comment Java gère plusieurs instances identiques du même cas. Je pense que ce qui suit est logique, sur le plan conceptuel:Cas multiples/répétitifs dans une instruction de commutateur Java
switch (someIntegerValue)
{
case 1:
case 2:
DoSomethingForBothCases();
break;
case 3:
DoSomethingUnrelated();
break;
case 1:
DoSomethingForCase1ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
case 2:
DoSomethingForCase2ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
}
Essentiellement, je voudrais avoir un morceau de code exécuté pour les deux cas, 1 ou 2 (en utilisant fall-through), mais plus tard, ont un morceau de code exécuté uniquement pour le cas 2.
Est-ce que ce qui suit est plutôt nécessaire?
switch (someIntegerValue)
{
case 1:
DoSomethingForBothCases();
DoSomethingForCase1ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
case 2:
DoSomethingForBothCases();
DoSomethingForCase2ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
case 3:
DoSomethingUnrelated();
break;
}
Mon code actuel est plus complexe, mais utiliserait le même principe (à savoir quelque chose comme "cas 1: Nope, bien ... cas 2: yep exécuter ce code !; cas 3: Nope, cas 1 fois:? encore Nope !; cas 2 fois: yep exécuter ce code, pas plus de cas: Tous les Done ")
Votre premier code ne sera pas compilé. Votre deuxième code est syntaxiquement correct. Une instruction switch est une table de branche (consultez wikipedia). – DwB