Com corregir l'error 'Saltar a l'etiqueta de cas d'inicialització de creus' a C++

Com Corregir L Error Saltar A L Etiqueta De Cas D Inicialitzacio De Creus A C



La declaració switch és la millor alternativa per a la declaració llarga if-else-if, ja que redueix la longitud del codi i aporta més claredat. El valor s'avalua mitjançant la instrucció switch i es prova amb els valors de cada etiqueta de cas. Si es troba la coincidència, el codi s'executa abans de la pausa, en cas contrari, executa el codi després del 'predeterminat'.

Què causa l'error 'Saltar a l'etiqueta de cas d'inicialització de creus' a C++

Mentre s'utilitza la instrucció switch, en C++ un error comú que es pot observar és 'Saltar a la inicialització de creus d'etiquetes de casos'. Aquest error sol aparèixer a causa de la declaració incorrecta d'una variable dins de l'etiqueta del cas. Aquí teniu un exemple de programa per demostrar l'error 'Saltar a la inicialització de creus d'etiquetes de casos' en C++:







#inclou
#inclou
utilitzant namespace std;
void menu_display ( ) ;
int menú_elecció ( ) ;
void get_two_operands ( int & n, int & m ) ;
int afegir ( int n, int m ) ;
int resta ( int n, int m ) ;


int principal ( )
{
int selecció;

fer
{
menu_display ( ) ;
selecció = menú_elecció ( ) ;
int x, y;
interruptor ( selecció )
{
Caixa 1 :

obtenir_dos_operands ( x, y ) ;
int suma = afegir ( x, y ) ;
cout << x << ' + ' << i << ' = ' << suma << endl;

trencar ;

Caixa 2 :

obtenir_dos_operands ( x, y ) ;

int dif = restar ( x, y ) ;
cout << x << ' - ' << i << ' = ' << dif << endl;

trencar ;
per defecte:;
}

} mentre ( selecció ! = 3 ) ;

cout << 'Programa finalitzat' << endl;

tornar 0 ;
}


void menu_display ( )
{
cout << endl;
cout << 'Calculadora bàsica' << endl;
cout << ' 1. Afegeix (+) ' << endl;
cout << ' 2. Resta (-) ' << endl;
cout << '3. Sortida' << endl;

cout << endl;
}

int get_menu_choice ( )
{
int elecció;
cout << 'Elecció no vàlida Torna-ho a provar:' ;
menjant >> selecció;

mentre ( ( ( selecció < 1 ) || ( selecció > 3 ) ) && ( ! cin.fail ( ) ) )
{
cout << ': ' ;
menjant >> selecció;
}
si ( cin.fail ( ) )
{
cout << 'Error' << endl;
sortida ( 1 ) ;
}
tornar selecció;
}

void get_two_operands ( int & n, int & m )
{
cout << 'Dóna dos operands' << endl;
cout << 'Primer operand:' ;
menjant >> n;
cout << 'Segon operand:' ;
menjant >> m;

}


int afegir ( int n, int m )
{
tornar ( n + m ) ;
}

int resta ( int n, int m )
{
tornar ( n - m ) ;
}


Quan s'executa aquest programa, retorna un error 'Saltar a l'etiqueta de cas'. Aquest és un error de compilació.



Aquest error apareix a causa de la declaració de la variable dins d'una instrucció de cas sense els claudàtors. El cas és només una etiqueta, de manera que no té la capacitat de restringir la disponibilitat dels paràmetres escrits a sota. Quan s'executa el codi anterior, es pot accedir a les variables del cas 1 mitjançant el cas 2, i apareixerà com a sense inicialitzar, provocant errors.







Com corregir l'error 'Saltar a l'etiqueta de cas d'inicialització de creus' a C++

Aquest error es pot solucionar utilitzant claudàtors dins del bloc de casos, que crearan un àmbit tancat i els paràmetres dels diferents blocs de casos no es manipularan.

Codi depurat

Aquest és el codi depurat per a l'error anterior. L'error es corregeix adjuntant les dades sota majúscules entre parèntesis:



#inclou
#inclou
utilitzant namespace std;
void menu_display ( ) ;
int menú_elecció ( ) ;
void get_two_operands ( int & n, int & m ) ;
int afegir ( int n, int m ) ;
int resta ( int n, int m ) ;


int principal ( )
{
int selecció;

fer
{
menu_display ( ) ;
selecció = menú_elecció ( ) ;
int x, y;
interruptor ( selecció )
{
Caixa 1 :
{
obtenir_dos_operands ( x, y ) ;
int suma = afegir ( x, y ) ;
cout << x << ' + ' << i << ' = ' << suma << endl;
}
trencar ;
Caixa 2 :
{
obtenir_dos_operands ( x, y ) ;
int dif = restar ( x, y ) ;
cout << x << ' - ' << i << ' = ' << dif << endl;
}
trencar ;
per defecte:;
}

} mentre ( selecció ! = 3 ) ;

cout << 'Programa finalitzat' << endl;

tornar 0 ;
}


void menu_display ( )
{
cout << endl;
cout << 'Calculadora bàsica' << endl;
cout << ' 1. Afegeix (+) ' << endl;
cout << ' 2. Resta (-) ' << endl;
cout << '3. Sortida' << endl;
cout << endl;
}

int menú_elecció ( )
{
int selecció;
cout << 'Trieu l'operació:' ;
menjant >> selecció;

mentre ( ( ( selecció < 1 ) || ( selecció > 3 ) ) && ( ! cin.fail ( ) ) )
{
cout << 'Elecció no vàlida Torna-ho a provar:' ;
menjant >> selecció;
}
si ( cin.fail ( ) )
{
cout << 'Error' << endl;
sortida ( 1 ) ;
}
tornar selecció;
}

void get_two_operands ( int & n, int & m )
{
cout << 'Dóna dos operands' << endl;
cout << 'Primer operand:' ;
menjant >> n;
cout << 'Segon operand:' ;
menjant >> m;

}


int afegir ( int n, int m )
{
tornar ( n + m ) ;
}

int resta ( int n, int m )
{
tornar ( n - m ) ;
}


Després de l'ús de claudàtors en els blocs de casos del codi, l'error s'ha corregit i es mostra la sortida:

Conclusió

La declaració switch és la millor alternativa per a la declaració llarga if-else-if, ja que redueix la longitud del codi i aporta més claredat. Mentre s'utilitza la instrucció switch, en C++ un error de compilació comú que es pot observar és 'Saltar a la inicialització de creus d'etiquetes de casos'. Aquest error sol aparèixer a causa de la declaració incorrecta d'una variable dins de l'etiqueta del cas. Això es pot solucionar utilitzant claudàtors al voltant de les dades sota blocs de casos.