इस ट्यूटोरियल में, आप जावा पुनरावर्ती कार्य, इसके फायदे और नुकसान के बारे में जानेंगे।
जावा में, एक विधि जो खुद को कॉल करती है उसे पुनरावर्ती विधि के रूप में जाना जाता है। और, इस प्रक्रिया को पुनरावृत्ति के रूप में जाना जाता है।
एक भौतिक दुनिया का उदाहरण दो समानांतर दर्पणों को एक दूसरे के सामने रखना होगा। उनके बीच की कोई भी वस्तु पुनरावर्ती रूप से परिलक्षित होगी।
कैसे काम करता है रिकर्सन?

उपरोक्त उदाहरण में, हमने recurse()
विधि को विधि के अंदर से बुलाया है main
। (सामान्य विधि कॉल)। और, पुनरावर्ती () विधि के अंदर, हम फिर से उसी पुनरावृत्ति विधि को बुला रहे हैं। यह एक पुनरावर्ती कॉल है।
पुनरावर्ती कॉल को रोकने के लिए, हमें विधि के अंदर कुछ शर्तों को प्रदान करने की आवश्यकता है। अन्यथा, विधि को असीम रूप से कहा जाएगा।
इसलिए, हम विधि के अंदर पुनरावर्ती कॉल को समाप्त करने के लिए if… else स्टेटमेंट (या समान दृष्टिकोण) का उपयोग करते हैं।
उदाहरण: पुनरावृत्ति का उपयोग करते हुए एक संख्या का गुणनखंड
class Factorial ( static int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) public static void main(String() args) ( int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); ) )
आउटपुट :
4 तथ्य = 24
उपरोक्त उदाहरण में, हमारे पास एक विधि है जिसका नाम है factorial()
। factorial()
से कहा जाता है main()
विधि। एक तर्क के रूप में पारित चर के साथ।
यहाँ, कथन पर ध्यान दें,
return n * factorial(n-1);
factorial()
विधि ही बुला रहा है। प्रारंभ में, n का मान 4 अंदर है factorial()
। अगली पुनरावर्ती कॉल के दौरान, 3 factorial()
विधि को पारित किया जाता है। यह प्रक्रिया तब तक जारी रहती है जब तक n 0 के बराबर न हो जाए।
जब n 0 के बराबर होता है, तो if
कथन गलत होता है इसलिए 1 वापस किया जाता है। अंत में, संचित परिणाम main()
विधि को पारित किया जाता है।
फैक्टरल प्रोग्राम का कार्य करना
नीचे दी गई छवि आपको एक बेहतर विचार देगी कि पुनरावृत्ति का उपयोग करके फैक्टरियल प्रोग्राम कैसे निष्पादित किया जाता है।

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