1. returnकथन

लगता है कि आप पहले से ही जावा विधियों के बारे में सब कुछ सीख चुके हैं? जो कुछ भी आप सोचते हैं कि आप जानते हैं, आप अभी भी उसका आधा नहीं जानते हैं।

आइए कुछ आसान से शुरू करें। उदाहरण के लिए, जावा में एक रिटर्न स्टेटमेंट है जो आपको इसे कॉल करने वाली विधि को तुरंत समाप्त करने देता है। यहाँ कथन है:

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
यदि  सरणी की लंबाई से from कम 0या अधिक है, तो विधि तुरंत समाप्त हो जाती है।to

उपरोक्त कार्यक्रम में एक fillविधि है जो इसे पास की गई सरणी को भरती है value। यह संपूर्ण सरणी को भरता नहीं है, केवल सूचकांकों द्वारा निर्दिष्ट भाग fromऔर to.

विधि की शुरुआत में fill , यह सुनिश्चित करने के लिए पारित मूल्यों की जाँच की जाती है कि वे मान्य हैं। यदि from0 से कम है, या यदि to सरणी की लंबाई से अधिक है, तो fillविधि तुरंत समाप्त हो जाती है (एक returnकथन निष्पादित करता है)।

यह returnकथन उपयोगी है: व्यावहारिक रूप से जावा में प्रत्येक विधि में एक है, और यहाँ क्यों है।



2. परिणाम के साथ तरीके,void

याद रखें कि हमने एक बार यह पता लगा लिया था कि कथन हैं, और भाव हैं । एक अभिव्यक्ति, एक बयान के विपरीत, एक मूल्य है जिसका उपयोग कहीं किया जा सकता है।

और, जावा में, विधियों का मान हो सकता है । और यह बहुत अच्छी खबर है: विधियाँ न केवल इनपुट मापदंडों के आधार पर कुछ करने में सक्षम हैं, बल्कि उदाहरण के लिए, कुछ का मूल्यांकन करने और गणना के परिणाम को वापस करने के लिए भी ।

वैसे, आप पहले ही ऐसे तरीकों का सामना कर चुके हैं:

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()एक देता हैString
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)