C++ இல் 'கேஸ் லேபிள் கிராஸ்கள் துவக்கம்' பிழையை எவ்வாறு சரிசெய்வது

C Il Kes Lepil Kiraskal Tuvakkam Pilaiyai Evvaru Cariceyvatu



ஸ்விட்ச் ஸ்டேட்மெண்ட் என்பது நீண்ட if-else-if அறிக்கைக்கு சிறந்த மாற்றாகும், ஏனெனில் இது குறியீட்டின் நீளத்தைக் குறைத்து சிறந்த தெளிவைக் கொண்டுவருகிறது. சுவிட்ச் ஸ்டேட்மென்ட்டைப் பயன்படுத்தி மதிப்பு மதிப்பிடப்படுகிறது மற்றும் ஒவ்வொரு கேஸ் லேபிளின் மதிப்புகளுக்கு எதிராகவும் சோதிக்கப்படுகிறது. பொருத்தம் கண்டறியப்பட்டால், குறியீடு இடைவேளைக்கு முன் செயல்படுத்தப்படும், இல்லையெனில், அது 'இயல்புநிலை' க்குப் பிறகு குறியீட்டை இயக்குகிறது.

C++ இல் 'ஜம்ப் டு கேஸ் லேபிள் க்ராஸ் இனிஷியலைசேஷன்' பிழைக்கு என்ன காரணம்

ஸ்விட்ச் ஸ்டேட்மென்ட்டைப் பயன்படுத்தும் போது, ​​C++ இல் காணப்படும் பொதுவான பிழையானது, 'கேஸ் லேபிள் கிராஸ் இன்ஷியாலைசேஷன்' என்பதாகும். கேஸ் லேபிளில் உள்ள மாறியின் தவறான அறிவிப்பின் காரணமாக இந்த பிழை பொதுவாக தோன்றும். C++ இல் 'கேஸ் லேபிள் கிராஸ்கள் துவக்கம்' பிழையை நிரூபிக்க ஒரு எடுத்துக்காட்டு நிரல் இங்கே:







# அடங்கும்
# அடங்கும்
பெயர்வெளி std ஐப் பயன்படுத்துதல்;
void menu_display ( ) ;
int choice_menu ( ) ;
void get_ two_operands ( முழு எண்ணாக & n, int & மீ ) ;
int சேர் ( int n, int m ) ;
int கழித்தல் ( int n, int m ) ;


முழு எண்ணாக ( )
{
முழு எண்ணாக தேர்வு;

செய்
{
மெனு_காட்சி ( ) ;
தேர்வு = தேர்வு_மெனு ( ) ;
int x, y;
சொடுக்கி ( தேர்வு )
{
வழக்கு 1 :

பெற_இரண்டு_செயல்பாடுகள் ( x, y ) ;
முழு எண்ணாக தொகை = சேர் ( x,y ) ;
கூட் << எக்ஸ் << '+' << மற்றும் << ' = ' << தொகை << endl;

உடைக்க ;

வழக்கு 2 :

பெற_இரண்டு_செயல்பாடுகள் ( x,y ) ;

முழு எண்ணாக வேறுபாடு = கழித்தல் ( x,y ) ;
கூட் << எக்ஸ் << '-' << மற்றும் << ' = ' << வேறுபாடு << endl;

உடைக்க ;
இயல்புநிலை:;
}

} போது ( தேர்வு ! = 3 ) ;

கூட் << 'நிரல் நிறுத்தப்பட்டது' << endl;

திரும்ப 0 ;
}


void menu_display ( )
{
கூட் << endl;
கூட் << 'அடிப்படை கால்குலேட்டர்' << endl;
கூட் << ' 1. சேர் (+) ' << endl;
கூட் << ' 2. கழித்தல் (-) ' << endl;
கூட் << '3. வெளியேறு' << endl;

கூட் << endl;
}

int get_menu_choice ( )
{
முழு எண்ணாக தேர்வு;
கூட் << 'தவறான தேர்வு மீண்டும் முயற்சிக்கவும்:' ;
உண்ணுதல் >> தேர்வு;

போது ( ( ( தேர்வு < 1 ) || ( தேர்வு > 3 ) ) && ( ! cin.fail ( ) ) )
{
கூட் << ':' ;
உண்ணுதல் >> தேர்வு;
}
என்றால் ( cin.fail ( ) )
{
கூட் << 'பிழை' << endl;
வெளியேறு ( 1 ) ;
}
திரும்ப தேர்வு;
}

void get_ two_operands ( முழு எண்ணாக & n, int & மீ )
{
கூட் << 'இரண்டு செயல்களை கொடுங்கள்' << endl;
கூட் << 'முதல் இயக்கம்:' ;
உண்ணுதல் >> n;
கூட் << 'இரண்டாவது இயக்கம் :' ;
உண்ணுதல் >> மீ;

}


int சேர் ( int n, int m )
{
திரும்ப ( n + மீ ) ;
}

int கழித்தல் ( int n, int m )
{
திரும்ப ( n - m ) ;
}


இந்த நிரல் செயல்படுத்தப்படும் போது, ​​அது 'கேஸ் லேபிளுக்கு தாவி' பிழையை வழங்குகிறது. இது தொகுத்தல் பிழை.



அடைப்புக்குறிகள் இல்லாமல் ஒரு வழக்கு அறிக்கையின் உள்ளே மாறி அறிவிக்கப்பட்டதால் இந்தப் பிழை தோன்றுகிறது. வழக்கு ஒரு லேபிள் மட்டுமே, எனவே அதன் கீழ் எழுதப்பட்ட அளவுருக்கள் கிடைப்பதைக் கட்டுப்படுத்தும் திறன் அதற்கு இல்லை. மேலே உள்ள குறியீடு செயல்படுத்தப்படும் போது, ​​வழக்கு 1 இன் மாறிகளை வழக்கு 2 மூலம் அணுகலாம், மேலும் இது பிழைகளுக்கு வழிவகுக்கும்.







C++ இல் 'கேஸ் லேபிள் கிராஸ்கள் துவக்கம்' பிழையை எவ்வாறு சரிசெய்வது

கேஸ் பிளாக்கிற்குள் அடைப்புக்குறிகளைப் பயன்படுத்துவதன் மூலம் இந்தப் பிழையை சரிசெய்ய முடியும், இது ஒரு மூடப்பட்ட நோக்கத்தை உருவாக்கும் மற்றும் வெவ்வேறு கேஸ் தொகுதிகளின் அளவுருக்கள் கையாளப்படாது.

பிழைத்திருத்த குறியீடு

மேலே உள்ள பிழைக்கான பிழைத்திருத்த குறியீடு இதுவாகும். அடைப்புக்குறிக்குள் உள்ள வழக்குகளின் கீழ் தரவை இணைப்பதன் மூலம் பிழை சரி செய்யப்பட்டது:



# அடங்கும்
# அடங்கும்
பெயர்வெளி std ஐப் பயன்படுத்துதல்;
void menu_display ( ) ;
int choice_menu ( ) ;
void get_ two_operands ( முழு எண்ணாக & n, int & மீ ) ;
int சேர் ( int n, int m ) ;
int கழித்தல் ( int n, int m ) ;


முழு எண்ணாக ( )
{
முழு எண்ணாக தேர்வு;

செய்
{
மெனு_காட்சி ( ) ;
தேர்வு = தேர்வு_மெனு ( ) ;
int x, y;
சொடுக்கி ( தேர்வு )
{
வழக்கு 1 :
{
பெற_இரண்டு_செயல்பாடுகள் ( x, y ) ;
முழு எண்ணாக தொகை = சேர் ( x, y ) ;
கூட் << எக்ஸ் << '+' << மற்றும் << ' = ' << தொகை << endl;
}
உடைக்க ;
வழக்கு 2 :
{
பெற_இரண்டு_செயல்பாடுகள் ( x, y ) ;
முழு எண்ணாக வேறுபாடு = கழித்தல் ( x,y ) ;
கூட் << எக்ஸ் << '-' << மற்றும் << ' = ' << வேறுபாடு << endl;
}
உடைக்க ;
இயல்புநிலை:;
}

} போது ( தேர்வு ! = 3 ) ;

கூட் << 'நிரல் நிறுத்தப்பட்டது' << endl;

திரும்ப 0 ;
}


void menu_display ( )
{
கூட் << endl;
கூட் << 'அடிப்படை கால்குலேட்டர்' << endl;
கூட் << ' 1. சேர் (+) ' << endl;
கூட் << ' 2. கழித்தல் (-) ' << endl;
கூட் << '3. வெளியேறு' << endl;
கூட் << endl;
}

int choice_menu ( )
{
முழு எண்ணாக தேர்வு;
கூட் << 'செயல்பாட்டைத் தேர்வுசெய்க:' ;
உண்ணுதல் >> தேர்வு;

போது ( ( ( தேர்வு < 1 ) || ( தேர்வு > 3 ) ) && ( ! cin.fail ( ) ) )
{
கூட் << 'தவறான தேர்வு மீண்டும் முயற்சிக்கவும்:' ;
உண்ணுதல் >> தேர்வு;
}
என்றால் ( cin.fail ( ) )
{
கூட் << 'பிழை' << endl;
வெளியேறு ( 1 ) ;
}
திரும்ப தேர்வு;
}

void get_ two_operands ( முழு எண்ணாக & n, int & மீ )
{
கூட் << 'இரண்டு செயல்களை கொடுங்கள்' << endl;
கூட் << 'முதல் இயக்கம்:' ;
உண்ணுதல் >> n;
கூட் << 'இரண்டாவது இயக்கம் :' ;
உண்ணுதல் >> மீ;

}


int சேர் ( int n, int m )
{
திரும்ப ( n + மீ ) ;
}

int கழித்தல் ( int n, int m )
{
திரும்ப ( n - m ) ;
}


குறியீட்டின் கேஸ் தொகுதிகளில் அடைப்பு அடைப்புகளைப் பயன்படுத்திய பிறகு, பிழை சரி செய்யப்பட்டது மற்றும் வெளியீடு காட்டப்படும்:

முடிவுரை

ஸ்விட்ச் ஸ்டேட்மெண்ட் என்பது நீண்ட if-else-if அறிக்கைக்கு சிறந்த மாற்றாகும், ஏனெனில் இது குறியீட்டின் நீளத்தைக் குறைத்து சிறந்த தெளிவைக் கொண்டுவருகிறது. ஸ்விட்ச் ஸ்டேட்மெண்ட்டைப் பயன்படுத்தும் போது, ​​C++ இல் பொதுவான தொகுத்தல் பிழையானது 'கேஸ் லேபிள் க்ராஸ் இன்னிஷியலைசேஷன்' என்பதாகும். கேஸ் லேபிளில் உள்ள மாறியின் தவறான அறிவிப்பின் காரணமாக இந்த பிழை பொதுவாக தோன்றும். கேஸ் பிளாக்குகளின் கீழ் தரவைச் சுற்றி அடைப்பு அடைப்புகளைப் பயன்படுத்தி இதைச் சரிசெய்யலாம்.