इस लेख में, आप एक पुनरावर्ती कार्य बनाना सीखेंगे; एक फ़ंक्शन जो स्वयं को कॉल करता है।
एक फ़ंक्शन जो स्वयं को कॉल करता है, एक पुनरावर्ती फ़ंक्शन के रूप में जाना जाता है। और, इस तकनीक को रिकर्सन के रूप में जाना जाता है। एक पुनरावर्ती फ़ंक्शन का निर्माण करते समय, आपको एक शर्त बनानी होगी ताकि फ़ंक्शन अनिश्चित काल तक (असीम रूप से) खुद को कॉल न करे।
स्विफ्ट में कैसे काम करता है रिकर्सन?
func recurse () (// स्टेटमेंट्स recurse ()) recurse ()
नीचे दिए गए आंकड़े से पता चलता है कि कैसे पुनरावृत्ति खुद को बार-बार कॉल करके काम करती है।
उपरोक्त प्रवाह आरेख में, पुनरावृत्ति असीम रूप से निष्पादित होती है। हालांकि, लगभग हर समय, आप एक पुनरावृत्ति बनाते हैं जो कुछ स्थिति पूरी होने तक निष्पादित होती है।
अनंत पुनरावृत्ति को रोकने के लिए, स्विफ्ट सशर्त विवरण के अंदर पुनरावर्ती कॉल का उपयोग करें, जैसे कि … और कथन।
उदाहरण 1: प्रिंट एन पॉजिटिव नंबर
func countDownToZero(num: Int) ( print(num) if num> 0 ( countDownToZero(num: num - 1) ) ) print("Countdown:") countDownToZero(num:3)
जब आप निम्न प्रोग्राम चलाते हैं, तो आउटपुट होगा:
उलटी गिनती: 3 2 1 0
उपरोक्त कार्यक्रम में, स्टेटमेंट काउंटडाउन: कंसोल में print("Countdown:")
आउटपुट करता है। और बयान उस फ़ंक्शन को कॉल करता है जो एक पैरामीटर लेता है ।countDownToZero(num:3)
Integer
फ़ंक्शन के अंदर का स्टेटमेंट countDownToZero()
निष्पादित होता है और यदि शर्त num> 0
पूरी होती है, तो फ़ंक्शन countDownToZero()
को फिर से कहा जाता है countDownToZero(num: num - 1)
।
यदि शर्त पूरी नहीं होती है, तो फ़ंक्शन कॉल नहीं किया जाता है और पुनरावृत्ति बंद हो जाती है।
आइए इसे चरणों में देखें
निष्पादन के चरणकदम | फंक्शन कॉल | छपा हुआ | संख्या> 0? |
---|---|---|---|
1 है | countDownToZero(3) | ३ | हाँ |
२ | countDownToZero(2) | २ | हाँ |
३ | countDownToZero(1) | 1 है | हाँ |
४ | countDownToZero(0) | ० | नहीं (समाप्त) |
उदाहरण 2: किसी संख्या का भाज्य ज्ञात कीजिए
func factorial(of num: Int) -> Int ( if num == 1 ( return 1 ) else ( return num * factorial(of:num - 1) ) ) let x = 4 let result = factorial(of: x) print("The factorial of (x) is (result)")
जब आप निम्न प्रोग्राम चलाते हैं, तो आउटपुट होगा:
4 का गुट 24 है
यह उदाहरण कैसे काम करता है?
आइए इसे चरणों में देखें
निष्पादन के चरणकदम | तर्क पारित किया | वापसी का बयान | मान |
---|---|---|---|
1 है | ४ | return 4 * factorial(of:3) | 4 * भाज्य (3 का) |
२ | ३ | return 3 * factorial(of:2) | 4 * 3 * भाज्य (2 का) |
३ | २ | return 2 * factorial(of:1) | 4 * 3 * 2 * भाज्य (1 का) |
४ | 1 है | return 1 | ४ * ३ * २ * १ |
आमतौर पर पुनरावृत्ति का उपयोग पुनरावृत्ति के प्रतिस्थापन के रूप में किया जाता है जब किसी समस्या का समाधान लगभग दो चरणों में पाया जा सकता है। पहला चरण एक समाधान खोजता है, अगर प्रक्रिया को दोहराते नहीं हैं।