J'ai tendance à considérer qu'en langage C et dans les langages dérivés, il ne faut pas utiliser l'instruction « goto », sauf peut-être dans des contextes très particuliers, et encore.
Quoi qu'il en soit, un jour, je suis tombé sur le projet universitaire en C d'un stagiaire. Le début, classique, consistait en un menu dans la console avec un chiffre à entrer pour sélectionner l'action. Pour une raison quelconque, mon stagiaire avait décidé de ne pas entrer un chiffre comme choix, mais une lettre, et une lettre majuscule ou minuscule devait représenter le même choix.
Le
main
contenait donc un
switch
géant, du style :
switch (choix)
{
case 'a' :
// action a
goto default;
case 'A' :
goto case 'a';
default :
break;
}
Et apparemment, c'était son professeur qui lui avait indiqué « la meilleure manière de gérer son menu ». PEBKAC.