जावा ट्यूटोरियल

जावा होम जावा परिचय जावा प्रारंभ करें जावा सिंटेक्स जावा टिप्पणियाँ जावा चर जावा डेटा प्रकार जावा टाइप कास्टिंग जावा ऑपरेटर्स जावा स्ट्रिंग्स जावा मठ जावा बूलियन जावा अगर ... और जावा स्विच जावा जबकि लूप लूप के लिए जावा जावा ब्रेक/जारी रखें जावा सरणी

जावा तरीके

जावा तरीके जावा विधि पैरामीटर्स जावा विधि ओवरलोडिंग जावा स्कोप जावा रिकर्सन

जावा क्लासेस

जावा ओओपी जावा क्लासेस/ऑब्जेक्ट्स जावा क्लास एट्रीब्यूट्स जावा क्लास मेथड्स जावा कंस्ट्रक्टर्स जावा संशोधक जावा एनकैप्सुलेशन जावा पैकेज / एपीआई जावा विरासत जावा बहुरूपता जावा इनर क्लासेस जावा एब्स्ट्रैक्शन जावा इंटरफ़ेस जावा Enums जावा उपयोगकर्ता इनपुट जावा तिथि जावा ऐरेलिस्ट जावा लिंक्डलिस्ट जावा हैश मैप जावा हैशसेट जावा इटरेटर जावा रैपर क्लासेस जावा अपवाद जावा रेगेक्स जावा धागे जावा लैम्ब्डा

जावा फ़ाइल हैंडलिंग

जावा फ़ाइलें जावा फ़ाइलें बनाएँ/लिखें जावा फ़ाइलें पढ़ें जावा फ़ाइलें हटाएं

जावा कैसे करें

दो नंबर जोड़ें

जावा संदर्भ

जावा कीवर्ड जावा स्ट्रिंग तरीके जावा गणित के तरीके

जावा उदाहरण

जावा उदाहरण जावा कंपाइलर जावा व्यायाम जावा प्रश्नोत्तरी जावा प्रमाणपत्र


जावा रिकर्सन


जावा रिकर्सन

रिकर्सन फ़ंक्शन कॉल को स्वयं करने की तकनीक है। यह तकनीक जटिल समस्याओं को सरल समस्याओं में तोड़ने का एक तरीका प्रदान करती है जिन्हें हल करना आसान होता है।

रिकर्सन को समझना थोड़ा मुश्किल हो सकता है। यह कैसे काम करता है, इसका पता लगाने का सबसे अच्छा तरीका इसके साथ प्रयोग करना है।


रिकर्सन उदाहरण

दो संख्याओं को एक साथ जोड़ना आसान है, लेकिन संख्याओं की श्रेणी जोड़ना अधिक जटिल है। निम्नलिखित उदाहरण में, दो संख्याओं को जोड़ने के सरल कार्य में इसे तोड़कर संख्याओं की एक श्रृंखला को एक साथ जोड़ने के लिए पुनरावर्तन का उपयोग किया जाता है:

उदाहरण

सभी संख्याओं को 10 तक जोड़ने के लिए रिकर्सन का प्रयोग करें।

public class Main {
  public static void main(String[] args) {
    int result = sum(10);
    System.out.println(result);
  }
  public static int sum(int k) {
    if (k > 0) {
      return k + sum(k - 1);
    } else {
      return 0;
    }
  }
}

उदाहरण समझाया गया

जब फ़ंक्शन को कॉल किया जाता है, तो यह उससे छोटी सभी संख्याओं के योग में sum()पैरामीटर जोड़ता है और परिणाम देता है। जब k 0 हो जाता है, तो फ़ंक्शन केवल 0 देता है। चलते समय, प्रोग्राम इन चरणों का पालन करता है:kk

10 + योग (9)
10 + (9 + योग (8) )
10 + (9 + (8 + योग (7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + योग (0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0

चूंकि फ़ंक्शन k0 होने पर स्वयं को कॉल नहीं करता है, प्रोग्राम वहीं रुक जाता है और परिणाम देता है।


रुकने की स्थिति

जिस तरह लूप अनंत लूपिंग की समस्या में चल सकते हैं, उसी तरह पुनरावर्ती कार्य अनंत रिकर्सन की समस्या में चल सकते हैं। अनंत रिकर्सन तब होता है जब फ़ंक्शन स्वयं को कॉल करना बंद नहीं करता है। प्रत्येक रिकर्सिव फ़ंक्शन में रुकने की स्थिति होनी चाहिए, जो कि ऐसी स्थिति है जहां फ़ंक्शन स्वयं को कॉल करना बंद कर देता है। पिछले उदाहरण में, रुकने की स्थिति तब होती है जब पैरामीटर k0 हो जाता है।

अवधारणा को बेहतर ढंग से समझने के लिए विभिन्न उदाहरणों को देखना सहायक होता है। इस उदाहरण में, फ़ंक्शन प्रारंभ और अंत के बीच संख्याओं की श्रेणी जोड़ता है। इस पुनरावर्ती कार्य के लिए रुकने की स्थिति तब होती है जब अंत प्रारंभ से बड़ा नहीं होता है :

उदाहरण

5 से 10 के बीच सभी संख्याओं को जोड़ने के लिए रिकर्सन का प्रयोग करें।

public class Main {
  public static void main(String[] args) {
    int result = sum(5, 10);
    System.out.println(result);
  }
  public static int sum(int start, int end) {
    if (end > start) {
      return end + sum(start, end - 1);
    } else {
      return end;
    }
  }
}