Cum să remediați eroarea „Săriți la inițializarea crucilor cu etichete de caz” în C++

Cum Sa Remediati Eroarea Sariti La Initializarea Crucilor Cu Etichete De Caz In C



Declarația switch este cea mai bună alternativă pentru instrucțiunea lungă if-else-if, deoarece reduce lungimea codului și aduce o claritate mai bună. Valoarea este evaluată utilizând instrucțiunea switch și este testată în raport cu valorile fiecărei etichete de caz. Dacă se găsește potrivirea, codul se execută înainte de pauză, în caz contrar, execută codul după „implicit”.

Ce cauzează eroarea „Săriți la inițializarea crucilor cu eticheta cazului” în C++

În timp ce utilizați instrucțiunea switch, în C++ o eroare comună care poate fi observată este „Săriți la inițializarea crucilor cu etichete de caz”. Această eroare apare de obicei din cauza declarației incorecte a unei variabile în eticheta cazului. Iată un exemplu de program pentru a demonstra eroarea „Salt la inițializarea crucilor cu etichete de caz” în C++:







#include
#include
folosind namespace std;
void menu_display ( ) ;
int choice_menu ( ) ;
void get_two_operanzi ( int & n, int & m ) ;
int add ( int n, int m ) ;
int scade ( int n, int m ) ;


int principal ( )
{
int selectie;

do
{
menu_display ( ) ;
selectie = choice_menu ( ) ;
int x, y;
intrerupator ( selecţie )
{
caz 1 :

obține_doi_operanzi ( X y ) ;
int sumă = adaugă ( X y ) ;
cout << X << „+” << și << ' = ' << sumă << endl;

pauză ;

caz 2 :

obține_doi_operanzi ( X y ) ;

int dif = scade ( X y ) ;
cout << X << '-' << și << ' = ' << dif << endl;

pauză ;
Mod implicit:;
}

} in timp ce ( selecţie ! = 3 ) ;

cout << „Program încheiat” << endl;

întoarcere 0 ;
}


void menu_display ( )
{
cout << endl;
cout << ' Calculator de bază ' << endl;
cout << ' 1. Adăugați (+) ' << endl;
cout << ' 2. Scăderea (-) ' << endl;
cout << ' 3. Ieșire' << endl;

cout << endl;
}

int get_menu_choice ( )
{
int alegere;
cout << „Alegere nevalidă Încercați din nou: „ ;
mâncând >> selecţie;

in timp ce ( ( ( selecţie < 1 ) || ( selecţie > 3 ) ) && ( ! cin.fail ( ) ) )
{
cout << ':' ;
mâncând >> selecţie;
}
dacă ( cin.fail ( ) )
{
cout << 'Eroare' << endl;
Ieșire ( 1 ) ;
}
întoarcere selecţie;
}

void get_two_operanzi ( int & n, int & m )
{
cout << „Dați doi operanzi” << endl;
cout << 'Primul operand: ' ;
mâncând >> n;
cout << 'Al doilea operand: ' ;
mâncând >> m;

}


int add ( int n, int m )
{
întoarcere ( n + m ) ;
}

int scade ( int n, int m )
{
întoarcere ( n - m ) ;
}


Când acest program este executat, returnează o eroare „Salt la eticheta cazului”. Aceasta este o eroare de compilare.



Această eroare apare din cauza declarației variabilei în interiorul unei instrucțiuni case fără parantezele anexate. Carcasa este doar o etichetă, deci nu are capacitatea de a restricționa disponibilitatea parametrilor înscriși sub ea. Când codul de mai sus este executat, variabilele din cazul 1 pot fi accesate de cazul 2 și va apărea ca neinițializat, ceea ce duce la erori.







Cum să remediați eroarea „Săriți la inițializarea crucilor cu etichete de caz” în C++

Această eroare poate fi remediată folosind paranteze în interiorul blocului de caz, care va crea un domeniu de aplicare închis și parametrii diferitelor blocuri de caz nu vor fi manipulați.

Cod depanat

Acesta este codul depanat pentru eroarea de mai sus. Eroarea este remediată prin includerea datelor sub cazuri între paranteze:



#include
#include
folosind namespace std;
void menu_display ( ) ;
int choice_menu ( ) ;
void get_two_operanzi ( int & n, int & m ) ;
int add ( int n, int m ) ;
int scade ( int n, int m ) ;


int principal ( )
{
int selectie;

do
{
menu_display ( ) ;
selectie = choice_menu ( ) ;
int x, y;
intrerupator ( selecţie )
{
caz 1 :
{
obține_doi_operanzi ( X y ) ;
int sumă = adaugă ( X y ) ;
cout << X << „+” << și << ' = ' << sumă << endl;
}
pauză ;
caz 2 :
{
obține_doi_operanzi ( X y ) ;
int dif = scade ( X y ) ;
cout << X << '-' << și << ' = ' << dif << endl;
}
pauză ;
Mod implicit:;
}

} in timp ce ( selecţie ! = 3 ) ;

cout << „Program încheiat” << endl;

întoarcere 0 ;
}


void menu_display ( )
{
cout << endl;
cout << ' Calculator de bază ' << endl;
cout << ' 1. Adăugați (+) ' << endl;
cout << ' 2. Scăderea (-) ' << endl;
cout << ' 3. Ieșire' << endl;
cout << endl;
}

int choice_menu ( )
{
int selectie;
cout << „Alegeți operația:” ;
mâncând >> selecţie;

in timp ce ( ( ( selecţie < 1 ) || ( selecţie > 3 ) ) && ( ! cin.fail ( ) ) )
{
cout << „Alegere nevalidă Încercați din nou: „ ;
mâncând >> selecţie;
}
dacă ( cin.fail ( ) )
{
cout << 'Eroare' << endl;
Ieșire ( 1 ) ;
}
întoarcere selecţie;
}

void get_two_operanzi ( int & n, int & m )
{
cout << „Dați doi operanzi” << endl;
cout << 'Primul operand: ' ;
mâncând >> n;
cout << 'Al doilea operand: ' ;
mâncând >> m;

}


int add ( int n, int m )
{
întoarcere ( n + m ) ;
}

int scade ( int n, int m )
{
întoarcere ( n - m ) ;
}


După utilizarea parantezelor de închidere în blocurile de caz ale codului, eroarea a fost remediată și rezultatul este afișat:

Concluzie

Declarația switch este cea mai bună alternativă pentru instrucțiunea lungă if-else-if, deoarece reduce lungimea codului și aduce o claritate mai bună. În timp ce utilizați instrucțiunea switch, în C++ o eroare obișnuită de compilare care poate fi observată este „Săriți la inițializarea crucilor cu etichete de caz”. Această eroare apare de obicei din cauza declarației incorecte a unei variabile în eticheta cazului. Acest lucru poate fi rezolvat utilizând paranteze în jurul datelor sub case blocks.