மாறுதல், வழக்கு, இயல்புநிலை - 1

"வணக்கம், அமிகோ!"

"ஹாய், பிலாபோ! உங்களை மீண்டும் பார்ப்பதில் மகிழ்ச்சி. உங்கள் விரிவுரைகள் மட்டும் மிகவும் நன்றாகவும் புரிந்துகொள்ளக்கூடியதாகவும் உள்ளன. இந்த ஜாவா மெமரி மாதிரி இல்லை."

"ஆமாம், பிலாபோவுக்கு பாடங்களைத் தேர்ந்தெடுக்கத் தெரியும். இன்று நான் உங்களுக்கு ஸ்விட்ச் ஸ்டேட்மெண்ட் பற்றிச் சொல்லப் போகிறேன்."

"யாரோ ஏற்கனவே இதைப் பற்றி என்னிடம் சொன்னார்கள் என்று நினைக்கிறேன்."

"எல்லி செய்தார். அதனால், அமிகோ ஸ்விட்ச் ஸ்டேட்மெண்ட் பற்றி பாடம் கேட்க விரும்பவில்லை? ஒருவேளை நீங்கள் சொந்தமாக கற்பிக்கத் தொடங்குவீர்களா?"

"இல்லை, நான் விரும்புகிறேன், நான் விரும்புகிறேன், ஸ்விட்ச் ஸ்டேட்மெண்ட் பற்றி கேட்கலாம்."

"சரி. ஜாவாவில், ஸ்விட்ச் ஸ்டேட்மென்ட் என்று ஒன்று உள்ளது. சில மாறிகளின் பல்வேறு மதிப்புகளைப் பொறுத்து சில செயல்களைச் செய்ய வேண்டியிருக்கும் போது இது வசதியானது."

சுவிட்ச் உடன் உதாரணம் சமமான குறியீடு
int i = 5;
switch(i)
{
 case 1:
  System.out.println("one");
  break;
 case 2:
  System.out.println("two");
  break;
 case 3:
  System.out.println("three");
  break;
 default:
  System.out.println("many");
}
int i = 5;
if (i == 1)
{
 System.out.println("one");
}
else if (i == 2)
{
 System.out.println("two");
}
else if (i == 3)
{
 System.out.println("three");
}
else
{
 System.out.println("many");
}

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

நான் 1 ஆக இருந்தால், "வழக்கு 1" எனக் குறிக்கப்பட்ட வரிக்கு செயல்படுத்தல் செல்லும்.

நான் 2 ஆக இருந்தால், "வழக்கு 2" எனக் குறிக்கப்பட்ட வரிக்கு மரணதண்டனை செல்லும்.

நான் 3 ஆக இருந்தால், "வழக்கு 3" எனக் குறிக்கப்பட்ட வரிக்கு மரணதண்டனை செல்லும்.

"எந்தவொரு வழக்குக்கும் செல்லவில்லை என்றால், "இயல்புநிலை" தொகுதி செயல்படுத்தப்படும்."

"நான் பார்க்கிறேன். வலதுபுறத்தில் அதே தர்க்கம் உள்ளது, ஆனால் if அறிக்கைகளைப் பயன்படுத்தி செயல்படுத்தப்பட்டதா?"

"ஆமாம்."

"மற்றும் 'பிரேக்' என்ற வார்த்தையில் என்ன இருக்கிறது? அதை லூப்களில் மட்டுமே பயன்படுத்த முடியும் என்று சொன்னீர்களா?"

"ஆம், இங்கே. இடைவேளை அறிக்கை செயல்படுத்தப்படும் போது, ​​நாங்கள் உடனடியாக சுவிட்சை விட்டு வெளியேறுகிறோம் ."

"ஆனால் முறிவு அறிக்கை அகற்றப்பட்டால், சுவிட்சில் உள்ள அனைத்து வரிகளும் இறுதி வரை செயல்படுத்தப்படும்."

உதாரணமாக வெளியீடு (i = 1க்கு) வெளியீடு (i = 2க்கு)
switch(i)
{
 case 1:
  System.out.println("one");
 case 2:
  System.out.println("two");
 case 3:
  System.out.println("three");
 default:
  System.out.println("many"); }
ஒன்று
இரண்டு
மூன்று
பல
இரண்டு
மூன்று
பல

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

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

"ஆம்."

"பைஸ் ஆஃப் கேக். ஆனால் இஃப் ஸ்டேட்மென்ட்களை சிறப்பாகப் பயன்படுத்த விரும்புகிறேன். இந்த அர்த்தமற்ற பிரேக் ஸ்டேட்மென்ட்கள் அவர்களிடம் இல்லை."

"அறிக்கைகள் மிகவும் கச்சிதமாக இருந்தால் அது உண்மைதான். ஆனால் ஒரு ஸ்விட்ச் ஸ்டேட்மெண்ட் சில நேரங்களில் படிக்கக்கூடியதாக இருக்கும்."

"ஒப்பிடுக:"

சுவிட்ச் உடன் உதாரணம் சமமான குறியீடு
public String getName(int i)
{
 switch(i)
 {
  case 1:
   return "one";
  case 2:
   return "two";
  case 3:
   return "three";
  default:
   return "many";
}
public String getName(int i)
{
 if (i == 1)
  return "one";

 if (i == 2)
  return "two";

 if (i == 3)
  return "three";

return "many"
}

"இது மிகவும் படிக்கக்கூடியது என்று நான் கூறமாட்டேன்."

"சரி, ஆனால் இந்த உதாரணம் பற்றி என்ன?"

சுவிட்ச் உடன் உதாரணம் சமமான குறியீடு
public String getName(int i)
{
 switch(i)
 {
  case 1:
  case 2:
   return "one or two";
  case 3:
  case 4:
  case 5:
   return "three to five";
  default:
   return "many";
}
public String getName(int i)
{
 if (i == 1 || i == 2)
  return "one or two";

 if (i == 3 || i == 4 || i == 5)
  return "three to five";

return "many"
}

"பிலாபோ, உங்கள் உதாரணம் சரியாகத் தெரியவில்லை. அதனால், நான் திரும்பப் பயன்படுத்தினால், இடைவேளை அறிக்கையைத் தவிர்க்க முடியுமா?"

"அது சரி. ஒரு ரிட்டர்ன் ஸ்டேட்மென்ட் உடனடியாக முறையிலிருந்து வெளியேறும்."

"அறிக்கைகள் எப்போதுமே மிகவும் கச்சிதமாக இருந்தால் தெரிகிறது. ஆனால் இந்த முறை ஸ்விட்ச் ஸ்டேட்மென்ட் அதிகம் படிக்கக்கூடியதாக மாறியது."

"ப்யூ, கடைசியாக."

"இன்னொரு விஷயம். கடைசியில் நீங்கள் இயல்புநிலையாக எழுத வேண்டியதில்லை. நீங்கள் எழுதவில்லை என்றால், லேபிள்கள் எதுவும் பொருந்தவில்லை என்றால் எதுவும் நடக்காது."

"ஓ, சரியாக. வேறு மாதிரி, ஆனால் படிக்கக்கூடியது-அதிகமாக படிக்கக்கூடியது!"

"அருமை. என் பாடம் உங்களுக்குப் பிடித்ததில் மகிழ்ச்சி."

"ஓ, நான் கிட்டத்தட்ட மறந்துவிட்டேன். ஆரம்பத்தில், நீங்கள் ஸ்விட்ச் ஸ்டேட்மென்ட்களில் பழமையான வகைகளையும் enumகளையும் மட்டுமே பயன்படுத்த முடியும். ஆனால் இப்போது அவர்கள் Stringsக்கான ஆதரவைச் சேர்த்துள்ளனர்."

"இதை நான் எழுதுகிறேன் என்று சொல்கிறீர்களா?"

உதாரணமாக
public int getNumber(String number)
{
 switch(number)
 {
  case "one":
   return 1;
  case "two":
   return 2;
  case "three":
   return 3;
  default:
   return -1;
 }
}

"ஆம். வசதியானது, இல்லையா?"

"ஆமாம். ஸ்விட்ச் ஸ்டேட்மெண்ட்ஸ் அருமை!"