1. एकाधिक-निवड ऑपरेटर:switch

Java कडे आणखी एक मनोरंजक ऑपरेटर आहे जो त्याला त्याच्या ग्रँडपप्पी (C++) कडून वारसा मिळाला आहे. आम्ही विधानाबद्दल बोलत आहोत switch. आम्ही त्याला बहु-निवड ऑपरेटर देखील म्हणू शकतो. हे थोडे अवजड दिसते:

switch(expression)
{
   case value1: code1;
   case value2: code2;
   case value3: code3;
}

एक अभिव्यक्ती किंवा चल कंसात सूचित केले आहे. अभिव्यक्तीचे मूल्य असल्यास value1, Java मशीन कार्यान्वित करण्यास प्रारंभ करते code1. जर अभिव्यक्ती समान असेल तर value2, अंमलबजावणी वर उडी मारते code2. जर अभिव्यक्ती समान असेल value3तर code3कार्यान्वित केली जाते.

उदाहरण:

कोड कन्सोल आउटपुट
int temperature = 38;

switch(temperature)
{
   case 36: System.out.println("Low");
   case 37: System.out.println("Normal");
   case 38: System.out.println("High");
}
High

2. breakमध्ये विधानswitch

विधानाचे एक महत्त्वाचे वैशिष्ट्य switchम्हणजे प्रोग्राम फक्त आवश्यक ओळीवर (आवश्यक कोड ब्लॉकवर) उडी मारतो आणि नंतर कोडच्या सर्व ब्लॉक्सच्या शेवटपर्यंत कार्यान्वित करतो switch. मधील मूल्याशी संबंधित केवळ कोडचा ब्लॉकच नाही switchतर कोडच्या शेवटपर्यंत सर्व ब्लॉक्स switch.

उदाहरण:

कोड कन्सोल आउटपुट
int temperature = 36;

switch(temperature)
{
   case 36: System.out.println("Low");
   case 37: System.out.println("Normal");
   case 38: System.out.println("High");
}
Low
Normal
High

36 चे तापमान दिल्यास, प्रोग्राम switchस्टेटमेंटमध्ये प्रवेश करेल, कोडच्या पहिल्या ब्लॉकवर (पहिली केस) उडी मारेल आणि कार्यान्वित करेल आणि नंतर कोडचे उर्वरित ब्लॉक आनंदाने कार्यान्वित करेल.

जर तुम्हाला कोडचा फक्त एक ब्लॉक कार्यान्वित करायचा असेल — जुळलेल्या केसशी संबंधित कोडचा ब्लॉक — तर तुम्हाला विधानासह ब्लॉक समाप्त करणे आवश्यक आहे break;

उदाहरण:

कोड कन्सोल आउटपुट
int temperature = 36;

switch(temperature)
{
   case 36:
      System.out.println("Low");
      break;
   case 37:
      System.out.println("Normal");
      break;
   case 38:
      System.out.println("High");
}
Low

breakतुम्ही स्टेटमेंटच्या शेवटच्या केसमध्ये वगळू शकता switch, कारण तो ब्लॉक ब्रेक स्टेटमेंटसह किंवा त्याशिवाय शेवटचा आहे.


3. डीफॉल्ट क्रिया:default

आणखी एक महत्त्वाचा मुद्दा. वरीलपैकी कोणतीही प्रकरणे switchकंसातील अभिव्यक्तीशी जुळत नसल्यास काय होईल?

जुळणारे केस न आढळल्यास, उर्वरित विधान switchवगळले जाईल, आणि कर्ली ब्रेस स्टेटमेंट संपल्यानंतर प्रोग्रामची अंमलबजावणी सुरू राहील switch.

switchअसे म्हटले आहे की, तुम्ही स्टेटमेंटमधील इतर शाखेप्रमाणे वर्तन देखील करू शकता if-else. हे करण्यासाठी, defaultकीवर्ड वापरा.

caseजर ब्लॉकमधील कोणतेही s switchअभिव्यक्तीच्या मूल्याशी जुळत नसेल आणि ब्लॉक switchअसेल तर default, डीफॉल्ट ब्लॉक कार्यान्वित केला जाईल. उदाहरण:

कोड कन्सोल आउटपुट
int temperature = 40;
switch(temperature)
{
   case 36:
      System.out.println("Low");
      break;
   case 37:
      System.out.println("Normal");
      break;
   case 38:
      System.out.println("High");
      break;
   default:
      System.out.println("Call an ambulance");
}
Call an ambulance

4. तुलना करणे switchआणिif-else

विधान switchकाहीसे विधानासारखे आहे if-else, फक्त अधिक क्लिष्ट आहे.

तुम्ही नेहमी विधानाचा कोड switchएकाधिक ifविधाने म्हणून पुन्हा लिहू शकता. उदाहरण:

स्विचसह कोड if-else सह कोड
int temperature = 40;
switch(temperature)
{
   case 36:
      System.out.println("Low");
      break;
   case 37:
      System.out.println("Normal");
      break;
   case 38:
      System.out.println("High");
      break;
   default:
      System.out.println("Call an ambulance");
}
int temperature = 40;

if (temperature == 36)
{
   System.out.println("Low");
}
else if (temperature == 37)
{
   System.out.println("Normal");
}
else if (temperature == 38)
{
   System.out.println("High");
}
else
{
   System.out.println("Call an ambulance");
}

डावीकडील कोड उजवीकडील कोड प्रमाणेच कार्य करेल.

एकाधिक विधानांची साखळी if-elseश्रेयस्कर असते जेव्हा ifविधानात प्रत्येक स्वतंत्र प्रकरणात विविध जटिल अभिव्यक्ती असतात.



5. विधानात कोणती अभिव्यक्ती वापरली जाऊ शकते switch?

caseविधानात सर्व प्रकार लेबल म्हणून वापरले जाऊ शकत नाहीत switch. आपण खालील प्रकारांची अक्षरे वापरू शकता:

  • पूर्णांक प्रकार: byte, short, int,long
  • char
  • String
  • कोणत्याही enumप्रकारचा

तुम्ही केस लेबल म्हणून इतर कोणतेही प्रकार वापरू शकत नाही .

enumविधानाच्या आत वापरण्याचे उदाहरण switch:

Day day = Day.MONDAY;
switch (day)
{
   case MONDAY:
      System.out.println("Monday");
      break;
   case TUESDAY:
      System.out.println("Tuesday");
      break;
   case WEDNESDAY:
      System.out.println("Wednesday");
      break;
   case THURSDAY:
      System.out.println("Thursday");
      break;
   case FRIDAY:
      System.out.println("Friday");
      break;
   case SATURDAY:
      System.out.println("Saturday");
      break;
   case SUNDAY:
      System.out.println("Sunday");
      break;
}

enumटीप: जर तुम्ही विधानाच्या आत वापरत असाल switch, तर तुम्हाला लेबलमधील प्रत्येक मूल्यासमोर वर्गाचे नाव लिहिण्याची गरज नाही case. फक्त मूल्य लिहिणे पुरेसे आहे.