Kako popraviti napako »Inicializacija skoči na oznako velikih in malih črk« v C++

Kako Popraviti Napako Inicializacija Skoci Na Oznako Velikih In Malih Crk V C



Stavek switch je najboljša alternativa dolgemu stavku if-else-if, saj skrajša dolžino kode in prinaša večjo jasnost. Vrednost je ovrednotena z uporabo stavka switch in preizkušena glede na vrednosti vsake oznake case. Če je ujemanje najdeno, se koda izvede pred prelomom, sicer pa izvede kodo po »privzetku«.

Kaj povzroča napako »Skok na oznako velikih črk pri inicializaciji« v C++

Pri uporabi stavka switch je v C++ pogosta napaka, ki jo lahko opazimo, 'Skoči na inicializacijo nalepke med velikimi in malimi črkami'. Ta napaka se običajno pojavi zaradi napačne deklaracije spremenljivke znotraj oznake case. Tukaj je primer programa za predstavitev napake »Inicializacija prečkanja velikih in malih črk« v C++:







#include
#include
uporaba imenskega prostora std;
void menu_display ( ) ;
int izbirni_meni ( ) ;
void get_two_operand ( int & n, notr & m ) ;
int dod ( int n, int m ) ;
int odštej ( int n, int m ) ;


int main ( )
{
int izbira;

narediti
{
menu_display ( ) ;
izbor = meni_izbire ( ) ;
int x, y;
stikalo ( izbor )
{
Ovitek 1 :

get_two_operand ( x, y ) ;
int vsota = dodati ( x, y ) ;
cout << x << '+' << in << ' = ' << vsota << endl;

odmor ;

Ovitek 2 :

get_two_operand ( x,y ) ;

int razl = odšteti ( x,y ) ;
cout << x << '-' << in << ' = ' << razl << endl;

odmor ;
privzeto:;
}

} medtem ( izbor ! = 3 ) ;

cout << 'Program prekinjen' << endl;

vrnitev 0 ;
}


void menu_display ( )
{
cout << endl;
cout << 'Osnovni kalkulator' << endl;
cout << ' 1. Dodaj (+) ' << endl;
cout << ' 2. Odštej (-) ' << endl;
cout << '3. Izhod' << endl;

cout << endl;
}

int get_menu_choice ( )
{
int izbira;
cout << 'Neveljavna izbira Poskusi znova: ' ;
prehranjevanje >> izbor;

medtem ( ( ( izbor < 1 ) || ( izbor > 3 ) ) && ( ! cin.ne uspeti ( ) ) )
{
cout << ':' ;
prehranjevanje >> izbor;
}
če ( cin.ne uspeti ( ) )
{
cout << 'Napaka' << endl;
izhod ( 1 ) ;
}
vrnitev izbor;
}

void get_two_operand ( int & n, notr & m )
{
cout << 'Daj dva operanda' << endl;
cout << 'Prvi operand: ' ;
prehranjevanje >> n;
cout << 'Drugi operand: ' ;
prehranjevanje >> m;

}


int dod ( int n, int m )
{
vrnitev ( n + m ) ;
}

int odštej ( int n, int m )
{
vrnitev ( n - m ) ;
}


Ko se ta program izvede, vrne napako »Skoči na oznako velikega črke«. To je napaka pri kompilaciji.



Ta napaka se pojavi zaradi deklaracije spremenljivke znotraj stavka case brez oklepajev. Zadeva je le oznaka, zato nima možnosti omejevanja dostopnosti parametrov, zapisanih pod njo. Ko se zgornja koda izvede, lahko do spremenljivk primera 1 dostopa primer 2 in bo prikazan kot neinicializiran, kar bo povzročilo napake.







Kako popraviti napako »Inicializacija skoči na oznako velikih in malih črk« v C++

To napako je mogoče odpraviti z uporabo oklepajev znotraj bloka primerov, kar bo ustvarilo zaprt obseg in parametri različnih blokov primerov ne bodo spremenjeni.

Razhroščena koda

To je odpravljena koda za zgornjo napako. Napaka se odpravi tako, da se podatki pod primeri zaprejo v oklepajih:



#include
#include
uporaba imenskega prostora std;
void menu_display ( ) ;
int izbirni_meni ( ) ;
void get_two_operand ( int & n, notr & m ) ;
int dod ( int n, int m ) ;
int odštej ( int n, int m ) ;


int main ( )
{
int izbira;

narediti
{
menu_display ( ) ;
izbor = meni_izbire ( ) ;
int x, y;
stikalo ( izbor )
{
Ovitek 1 :
{
get_two_operand ( x,y ) ;
int vsota = dodati ( x,y ) ;
cout << x << '+' << in << ' = ' << vsota << endl;
}
odmor ;
Ovitek 2 :
{
get_two_operand ( x,y ) ;
int razl = odšteti ( x,y ) ;
cout << x << '-' << in << ' = ' << razl << endl;
}
odmor ;
privzeto:;
}

} medtem ( izbor ! = 3 ) ;

cout << 'Program prekinjen' << endl;

vrnitev 0 ;
}


void menu_display ( )
{
cout << endl;
cout << 'Osnovni kalkulator' << endl;
cout << ' 1. Dodaj (+) ' << endl;
cout << ' 2. Odštej (-) ' << endl;
cout << '3. Izhod' << endl;
cout << endl;
}

int izbirni_meni ( )
{
int izbira;
cout << 'Izberite operacijo:' ;
prehranjevanje >> izbor;

medtem ( ( ( izbor < 1 ) || ( izbor > 3 ) ) && ( ! cin.ne uspeti ( ) ) )
{
cout << 'Neveljavna izbira Poskusi znova: ' ;
prehranjevanje >> izbor;
}
če ( cin.ne uspeti ( ) )
{
cout << 'Napaka' << endl;
izhod ( 1 ) ;
}
vrnitev izbor;
}

void get_two_operand ( int & n, notr & m )
{
cout << 'Daj dva operanda' << endl;
cout << 'Prvi operand: ' ;
prehranjevanje >> n;
cout << 'Drugi operand: ' ;
prehranjevanje >> m;

}


int dod ( int n, int m )
{
vrnitev ( n + m ) ;
}

int odštej ( int n, int m )
{
vrnitev ( n - m ) ;
}


Po uporabi oklepajev v blokih case kode je bila napaka odpravljena in prikazan je rezultat:

Zaključek

Stavek switch je najboljša alternativa dolgemu stavku if-else-if, saj skrajša dolžino kode in prinaša večjo jasnost. Med uporabo stavka switch je v C++ pogosta napaka pri prevajanju, ki jo lahko opazimo, 'Skoči na inicializacijo križanj z oznako velikih in malih črk'. Ta napaka se ponavadi pojavi zaradi nepravilne deklaracije spremenljivke v oznaki case. To je mogoče popraviti z uporabo oklepajev okoli podatkov pod bloki primerov.