1. returnविधान

जावा पद्धतींबद्दल आपण आधीच सर्व शिकले आहे असे वाटते? तुम्हाला जे वाटते ते तुम्हाला माहीत आहे, तरीही तुम्हाला त्यातील अर्धा भाग माहित नाही.

चला सोप्या गोष्टीपासून सुरुवात करूया. उदाहरणार्थ, Java मध्ये रिटर्न स्टेटमेंट आहे जे तुम्हाला कॉल करणारी पद्धत त्वरित बंद करू देते. हे विधान आहे:

return;

returnहे सोपे आहे: अर्धविराम नंतर एकल शब्द . प्रोग्रामने हे विधान कार्यान्वित केल्यावर, वर्तमान पद्धत ताबडतोब बाहेर पडते आणि कॉलिंग चालू राहते.

जर returnमेथडमध्ये कॉल केला असेल main, तर mainपद्धत त्वरित संपेल आणि त्यासह संपूर्ण प्रोग्राम.

उदाहरण:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {


     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}


पद्धत fill पास केलेल्या अॅरेचा काही भाग सह भरते value.
अ‍ॅरेचा जो भाग भरायचा आहे तो निर्देशांकांद्वारे परिभाषित केला जातो from आणि to.  पेक्षा कमी
असल्यास किंवा जर  अॅरेच्या लांबीपेक्षा जास्त असेल, तर पद्धत त्वरित बंद होते. from0to

वरील प्रोग्राममध्ये एक fillपद्धत आहे जी त्यास पास केलेला अॅरे भरते value. हे संपूर्ण अॅरे भरत नाही, फक्त निर्देशांकांद्वारे निर्दिष्ट केलेला भाग fromआणि to.

पद्धतीच्या सुरुवातीला fill , पास केलेली मूल्ये वैध असल्याची खात्री करण्यासाठी तपासली जाते. जर from0 पेक्षा कमी असेल, किंवा to अॅरेच्या लांबीपेक्षा जास्त असेल, तर fillपद्धत ताबडतोब संपुष्टात येते ( returnविधान कार्यान्वित करते).

हे returnविधान उपयुक्त आहे: जावा मधील व्यावहारिकदृष्ट्या प्रत्येक पद्धतीमध्ये एक आहे, आणि ते येथे आहे.



2. परिणामासह पद्धती,void

लक्षात ठेवा आम्ही एकदा शोधून काढले की विधाने आहेत आणि अभिव्यक्ती आहेत . अभिव्यक्ती, विधानाच्या विपरीत, एक मूल्य असते जे कुठेतरी वापरले जाऊ शकते.

आणि, Java मध्ये, पद्धतींचे मूल्य असू शकते . आणि ही खूप चांगली बातमी आहे: पद्धती केवळ इनपुट पॅरामीटर्सवर आधारित काहीतरी करण्यास सक्षम नाहीत, परंतु, उदाहरणार्थ, एखाद्या गोष्टीचे मूल्यांकन करण्यासाठी आणि गणनाचा परिणाम परत करण्यासाठी देखील .

तसे, आपण आधीच अशा पद्धतींचा सामना केला आहे:

double delta = Math.abs(d1 - d2);
पद्धत abs()दुहेरी परत करते
Scanner console = new Scanner(System.in);
int x = console.nextInt();

पद्धत nextInt()एक परत करतेint
String str = "Hello";
String s2 = str.toUpperCase();

पद्धत toUpperCase()परत मिळते aString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

पद्धत copyOf()एक परत करतेint[]

प्रत्येक पद्धत केवळ एका पूर्वनिर्धारित प्रकाराचे एक मूल्य परत करू शकते. जेव्हा पद्धत घोषित केली जाते तेव्हा परतीचा प्रकार निर्धारित केला जातो:

public static Type name(parameters)
{
  method body
}

name पद्धतीचे नाव कुठे आहे, parameters पद्धतीच्या पॅरामीटर्सची सूची आहे आणि type पद्धत कोणत्या प्रकारचा परिणाम देते.

काहीही न देणार्‍या पद्धतींसाठी, एक विशेष प्लेसहोल्डर प्रकार आहे: void.

तुम्ही तुमची स्वतःची पद्धत लिहित आहात आणि कॉलिंग पद्धतीवर काहीही परत करू इच्छित नाही? फक्त पद्धतीचा प्रकार म्हणून घोषित करा voidआणि समस्या सोडवली जाईल. जावामध्येही अशा अनेक पद्धती आहेत.


3. परिणाम परत करणे

गणनेचा निकाल देणारी पद्धत कशी घोषित करायची हे आम्‍ही नुकतेच शोधून काढले, परंतु हा निकाल पद्धतीतच कसा लावायचा?

विधान returnआम्हाला पुन्हा एकदा मदत करते. एका पद्धतीतून निकाल उत्तीर्ण करणे असे दिसते:

return value;

returnपद्धत ताबडतोब संपुष्टात आणणारे विधान कुठे आहे. आणि value हे मूल्य आहे की पद्धत जेव्हा ती बाहेर पडते तेव्हा कॉलिंग पद्धतीकडे परत येते. पद्धतीच्या घोषणेमध्ये नमूद केलेल्या प्रकाराशी valueजुळणे आवश्यक आहे .type

उदाहरण 1. पद्धत किमान दोन संख्यांची गणना करते:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
पद्धत किमान दोन संख्या मिळवते. परत आला

तर परतa < b
a

b

उदाहरण 2. ही पद्धत तिला पास केलेल्या स्ट्रिंगची डुप्लिकेट करते n:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
पद्धत दोन पॅरामीटर्स घेते — एक स्ट्रिंग आणि स्ट्रिंगची किती वेळा पुनरावृत्ती करावी.
भविष्यातील निकालासाठी रिक्त स्ट्रिंग तयार केली आहे.

पुनरावृत्तीसह लूपमध्ये times, स्ट्रिंगमध्ये स्पेस आणि strस्ट्रिंग जोडली जाते result. पद्धतीचा परिणाम म्हणून

स्ट्रिंग परत केली जाते.result

उदाहरण 3: ही पद्धत टर्नरी ऑपरेटर वापरून जास्तीत जास्त दोन संख्यांची गणना करते:

int max(int a, int b)
{
   return (a > b ? a : b);
}
पद्धत जास्तीत जास्त दोन संख्या मिळवते.

परत (जर a > b, नंतर a, अन्यथा b)