Je lisais Pourquoi devons-nous utiliser break
dans switch
? , et cela m'a amené à me demander pourquoi le passage implicite est autorisé dans certains langages (tels que PHP et JavaScript), alors qu'il n'y a pas de support (AFAIK) pour le passage explicite.
Ce n'est pas comme si un nouveau mot clé devait être créé, ce continue
qui serait parfaitement approprié, et résoudrait tout problème d'ambiguïté quant à savoir si l'auteur voulait qu'un cas tombe.
Le formulaire actuellement pris en charge est:
switch (s) {
case 1:
...
break;
case 2:
... //ambiguous, was break forgotten?
case 3:
...
break;
default:
...
break;
}
Attendu qu'il serait logique qu'il soit écrit comme suit:
switch (s) {
case 1:
...
break;
case 2:
...
continue; //unambiguous, the author was explicit
case 3:
...
break;
default:
...
break;
}
Pour les besoins de cette question, ignorons la question de savoir si les relais sont un bon style de codage.
Existe-t-il des langages qui permettent le basculement et le rendent explicite?
Y a-t-il des raisons historiques qui switch
permettent une chute implicite plutôt qu'explicite?
goto case
en C #.
goto case
, comme le mentionne pdr.
goto case
, donc la prémisse de votre question est un peu fausse.