Maison >développement back-end >C++ >Pourquoi l'erreur « Aller à l'étiquette du cas » se produit-elle dans une instruction Switch ?
Résolution d'erreur : "Aller à l'étiquette du cas" dans l'instruction Switch
Dans l'extrait de code fourni :
< pre>
int main()
{
int choice; std::cin >> choice; switch(choice) { case 1: int i=0; break; case 2: // error here }
}
L'erreur de compilation se produit car les variables déclarées dans une étiquette de cas sont accessibles dans les étiquettes de cas suivantes à moins qu'elles ne soient explicitement incluses dans un bloc.
Dans ce scénario, la variable que j'ai déclarée dans le cas 1 reste dans la portée du cas 2, mais son code d'initialisation n'est pas exécuté. L'accès à une variable non initialisée peut entraîner un comportement ou des erreurs inattendus.
Pour résoudre ce problème, placez chaque étiquette de cas dans son propre bloc :
<br> switch(choice)</p> <pre class="brush:php;toolbar:false">{ case 1: { int i=0; break; } case 2: { // Code for case 2 break; } }
Cela garantit que les variables déclarées dans un cas ne sont pas visibles ou accessibles en dehors de ce cas. Chaque cas a désormais son propre périmètre isolé, évitant ainsi les erreurs liées à la visibilité variable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!